版权声明:本文为博主原创文章,未经博主允许不得转载。---魏波 https://blog.csdn.net/weibo1230123/article/details/87869114
C语言中:#define宏的正确使用
正确使用方式1:
#define A(a,b) ((a)*(b))
正确使用方式2:
#define F(x) do{\
printf("This is a 111\n");\
printf("This is a 222\n");\
}while(0)
用do-while(0)方式定义宏,完全不用担心使用者如何使用宏,也不用给使用者加什么约束条件。
正确使用方式3:
下面是错误的写法:
#define A(a) ((a)*(a))
int a = 5;
int b;
b=A(a++);//结果a=7,即执行了两次增。
下面是正确的写法:
#define A(a) ((a)*(a))
int a = 5;
int b;
b=A(a);
a++;//结果a=6,即执行了一次增。
使用宏时,不允许参数发生变化。