#define 定义标识符——定义宏——替换规则——##的作用—
FILE //进行编译的源文件
LINE //文件当前的行号
DATE //文件被编译的日期
TIME //文件被编译的时间
STDC //如果编译器遵循 ANSI C,其值为 1,否则未定义
《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 这些预定义符号都是语言内置的。
#define 定义标识符
语法:
#define name stuff
如:
#define MAX 1000
#define CASE break;case
#define SQUARE(X) ((X)*(X))//多个()使其为最安全的形式,会避免很多 bug
//若 stuff 过长,可以写成几行,用''连续
注意: 参数列表的左括号必须与 name 紧邻。 如果两者之间有任何空白存在,参数列表就会被解释为 stuff 的一部分。
#define 替换规则
1.在调用宏时,首先对参数进行检查,看看是否包含任何由 #define 定义的符号。如果是,它们会被替换。
2.替换后被插入到程序中原来文本的位置,对于宏,参数名被他们替换。
3.最后,再次扫描,看看是否包含任何由 #define 定义的符号。如果是,重复上述过程。
评论