宏定义

宏定义(#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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注