有时候会用宏对代码进行控制,基本方式如下:
#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语句没有了。
本文探讨了在编程中使用宏进行控制的基本方式,并强调了#endif必须单独占一行的重要性,否则会导致后续代码被预处理时删除。通过具体示例展示了预处理过程中的行为变化。
1279

被折叠的 条评论
为什么被折叠?



