有时候会用宏对代码进行控制,基本方式如下:
#ifdef XXXX
<code1>
#else
<code2>
#endif
但有一点需要注意:#endif必须单独占一行,若是在其后面写代码,则后面的代码在预处理的时候也会被删掉。
例如下面的一段代码,在#endif同行还有一个if语句
#include <stdio.h>
int main()
{
int a, b;
#ifdef ABC
if (a = 0) {
#else
if (a == 1) {
#endif if (b = 0) {
printf("123\n");
}
}
return 0;
}
但实际预处理后的结果是:
int main()
{
int a, b;
if (a == 1) {
printf("123\n");
}
}
return 0;
}
从上面可以看出,在#endif后面的if语句没有了。