一个关于宏定义define的小问题
看到有人程序有这种写法
#define constant statement1;\
statement2
于是我仿其方式也写一个小程序试验一下,发现不对啊
#include <stdio.h>
char i;
#define CHAR i=1;\
i=5;
void main()
{
char m;
char *table;
m = CHAR;
printf("%d\n",m);
}
为什么打印出来还是等于1呢,照上面的那种宏定义写法应该是等于5啊! 宏
[解决办法]
宏会进行展开,你把你的宏展开看看结果。
相当于 m = i = 1; i = 5; 这不是相当两个语句了吗。m 肯定等于1啦,你打印i看看