正如标题提示的那样,我的问题是预处理器指令#if
和#endif
是否像范围一样?考虑一下这个例子:
#define foo 1
#define bar 1
#if foo
#undef bar
#endif //foo
// Is 'bar' defined or undefined here?
答案 0 :(得分:0)
现在用你的例子测试它,你会看到它:
#include <stdio.h>
#define foo 1
#define bar 1
#if foo
#undef bar
#endif //foo
int main() {
printf("%d", bar);
return 0;
}
我的编译器输出:
[Error] 'bar' undeclared (first use in this function)
所以你可以看到它未被宣布