宏定义

#define

  • 开头的是编译预处理指令

  • 他们不是C语言的成分,但是C语言程序离不开他们
  • define用来定义一个宏

#define  标识符  值
// 注意,后面没有分号(他不是C语言的语句)
  • 标识符必须是一个单词,值是什么都可以

写了define后,预编译所执行的操作是简单的“文本”替换。把代码中所有出现标识符的地方替换为后面的值,可以使用能够 gcc --save-temps 来查看预编译后产生的文件,来查看这件事。

  • 后面的宏中如果出现前面宏中定义的标识符,也会被替换
  • 宏需要写在一行,如果需要多行书写,可以在行尾加 \(不只是宏可以这样,C语言代码也可以)
  • 宏也可以写注释,不会被当作宏的一部分
  • 没有值的宏可以用作条件编译,后面可以使用其他预处理质量来检测这个宏是否定义过。(如 #define _DEBUG

预定义的宏

这些宏默认提供的,可以实现一些功能

用处
__LINE__ 当前行号
__FILE__ 当前文件名
__DATE__ 编译日期
__TIME__ 编译时间
__FUNC__ 当前所在的函数名
__STDC__ STDC是预定义宏。当它被定义后,编译器将按照ansic标准来编译你的c程序。
最后修改:2023 年 04 月 28 日
如果觉得我的文章对你有用,请随意赞赏