宏定义(#define)
在C中,由一种预处理器指令叫宏。
宏可以很简单,比如它只定义一个符号。
例如下面,使用 INCHES_PER_FOOT 来代替 12。
define INCHES_PER_FOOT 12
在源文件中包含这个指令,则代码中只要出现 INCHES_PER_FOOT 就会用 12 来代替。
例如:
printf(“一年有%d个月。\n”,INCHES_PER_FOOT);
这句代码预处理后会变成:
printf(“一年有%d个月。\n”,12);
INCHES_PER_FOOT 不再出现,因为该符号被 #define 指令中指定的内容替换了。
如果源码中有多个 INCHES_PER_FOOT,那么每个 INCHES_PER_FOOT 都会被替换。
宏也可以很复杂。后面再来介绍这个。
基础示例代码
#include <stdio.h>
#define INCHES_PER_FOOT 12
int main(void)
{
printf("一年有%d个月。\n",INCHES_PER_FOOT);
return 0;
}Code language: PHP (php)
运行输出结果
一年有12个月。
Process exited after 0.1233 seconds with return value 0
请按任意键继续. . .Code language: JavaScript (javascript)
讲课代码
#include <stdio.h>
#define INCHES_PER_FOOT 12
int main(void)
{
printf("一年有12个月。\n");
printf("一年有%d个月。\n",12);
printf("一年有%d个月。\n",INCHES_PER_FOOT);
printf("一年有%d个月。\n",INCHES_PER_FOOT);
return 0;
}Code language: PHP (php)