你用#define b定义了一个宏,但没有定义它的展开代码。当预处理器对你的源码进行预处理时,会依次遇到如下的宏调用:1、b+1;经处理后变成了+1;没有语法错误;2、printf("%d\n",b);经处理后变成了printf("%d\n",);有语法错误,这就是问题所在。可将#define b定义成#define b 100(或其它整数),来避免这个错误。