C:笔记:编译 预处理

编译预处理

#开头的是编译预处理指令

#define定义一个宏

在C99之前没有const,只能使用#define:

#define PI 3.14
const double PI = 3.14;//C99之后可以使用const

这里#define定义一个PI,在编译的时候,会把程序代码里面的PI都替换成3.14。这就是宏定义

注意,结尾处没有分号,以为他不是C语句

宏的值有多行,可以用\在分行处结尾

宏的名字不能有空格,但是值可以有空格

#define后面可以只有宏的名字,没有宏的值。一般用于条件编译。

预定义的宏,一般是宏名字前后有两个下划线 : __LINE__

带有参数的宏

#define cube(x) ((x)*(x) + 10)
//这里需要注意,带有参数的值是表达式时,一定要加上括号。

带参数宏的原则:

一切都要有括号

    整个值要有括号

    参数出现的每个地方都要有括号

参数可以是多个

#define MIN(a, b) ((a)>(b)?(b):(a))

宏可以嵌套使用


你可能感兴趣的:(C:笔记:编译 预处理)