C语言中:#define宏的正确使用

版权声明:本文为博主原创文章,未经博主允许不得转载。---魏波 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,即执行了一次增。

使用宏时,不允许参数发生变化。

猜你喜欢

转载自blog.csdn.net/weibo1230123/article/details/87869114