读书人

一个关于宏定义define的小疑点

发布时间: 2013-08-25 10:49:56 作者: rapoo

一个关于宏定义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看看

读书人网 >C语言

热点推荐