预处理命令分为三种:宏定义、条件编译、文件包含
关于预处理命令:
(1)所有预处理命令都以#开头,但是要注意,结尾都没有分号。
(2)预处理命令在编译之前完成。
(3)预处理命令也有作用域:在定义的那一行开始生效,知道文件结束,或者遇到#undef取消宏定义。
(4)宏名一般都用大写,或用k开头(k代表常量)
宏的作用:在编译之前,将所用的宏名替换成对应的值,但是并不负责计算(这是针对于有参数的宏定义)
1.不带参数的宏定义:
- #define num 500
- int main()
- {
- int n = num;
- int m = num + 55;
- printf("n=%d\tm=%d\n",n,m); //结果: n=500 m=555
- return 0;
- }
复制代码
2.带参数的宏定义:
- #define sum(v1,v2) v1+v2 //这种写法其实并不正确,正确的写法应该是 #define sum(v1,v2) ((v1)+(v2)) 后边详细解释
- int main()
- {
- int a = 5;
- int b = 6;
- int c = sum(a,b);
- printf("a+b=%d\n",c); //结果:11
- return 0;
- }
复制代码 需要注意的是:
(1)宏定义只负责在变以前替换所有的宏名,并不负责运算。
(2)宏定义是,值的写法:要先将参数
(3)
|
|