ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 无参宏 #### 无参宏就是不带参数的宏,这样的宏通常只用来做一些简单的替换 #include <stdio.h> #define HELLO printf("hello world\n"); //分号属于宏体,不可看作语句的结束标志 int main() { HELLO return 0; } HELLO是自定义的无参宏,它用来作为其宏体的替身,这样当需要调用printf函数输出“hello world“时,只要敲入HELLO即可 宏定义与定义变量的区别:定义变量要为变量分配内存;宏定义只是告诉预处理器,当遇到某个宏名时,可以用指定的宏体来替换,并不为宏分配内存 **注意:预处理器不对宏做语法检查,因此宏体写错的时候也照样进行替换** 应用:**可以利用无参宏来简化输出语句** #include <stdio.h> #define P printf #define D "%d" #define N "\n" #define T "\t" #define D1 D N #define D2 D T D N #define D3 D T D T D N int main() { int x=1,y=2,z=3; P(D1,x); P(D2,x,y); P(D3,x,y,z); return 0; } **注意:如果有一批宏要经常使用,并且这批宏的数量很大,那么不如将它们放到头文件中定义,用的时候再将其包含到程序中** **宏的嵌套定义** 可以将一个宏嵌套在另一个宏的定义中 #include <stdio.h> #define R 10 #define PI 3.1415926 #define S PI*R*R int main() { printf("设圆的半径为:%d\n则圆的面积为:%f\n",R,S); return 0; }