编译预处理指令
#开头的是编译预处理指令它们不是C语言的成分,但是C语言程序离不开它们#define用来定义一个宏
#define
#define <名字><值>注意没有结尾的分号,因为不是C的语句名字必须是一个单词,值可以是各种东西在C语言的编译器开始编译之前,编译预处理程序(cpp)会把程序中的名字换成值
完全的文本替换gcc --save-temps
宏
如果一个宏的值中有其他的宏的名字,也是会被替换的如果一个宏的值超过一行,最后一行之前的行末需要加
\宏的值后面出现的注释不会被当作宏的值的一部分
#include<stdio.h>
#define PI 3.1415926
#define FORMAT "%f\n"
#define PI2 2*PI //pi*2
#define PRT printf("%f ",PI)
\
printf("%f\n",PI2)
int main(){PRT;return 0;}
没有值的宏
#define _DEBUG这类宏是用于条件编译的,后面有其他编译预处理指令来检查这个宏是否已经定义过了
预定义的宏
_LINE__FILE__DATE__TIME__STDC_