目录
1 有值的宏
以#开头的语句是编译预处理语句,不参与代码的编译。例如#define语句就是一个宏定义语句。宏定义有一些特点:
语法:#define <名字> <值>
(1)该语句没有分号,因为不属于代码一部分。该代码不参与编译,在编译前就把代码中所以的名字替换成值(存文本替换);
(2)名字必须是一个单词,值可以是任何东西;
(3)宏中可以包含其他宏;
(4) 宏后的注释不属于宏;
(5)宏可以用/换行;
调试代码如下所示:
#include<stdio.h>
#define pi 3.141592
#define pi_plus_1 pi+1
#define output printf("pi=%lf\n",pi);\
printf("pi_plus_1=%lf",pi_plus_1)
void main(void)
{
output;
}
运行结果为:
pi=3.141592
pi_plus_1=4.141592
2 没有值的宏
一般用来条件编译