c – 了解预处理程序指令

前端之家收集整理的这篇文章主要介绍了c – 了解预处理程序指令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么这段代码没有编译?如果我理解正确,这应该编译.哪里我错了?
#define THREADMODEL ASC 

#if THREADMODEL==NOASC
THIS BLOCK SHOULDN'T BE COMPILED
#endif

int main() {
}

解决方法

当预处理器解释时
#if THREADMODEL==NOASC

它将用ASC取代THREADMODEL:

#if ASC==NOASC

除非#defined ASC和NOASC具有数值,否则预处理器将用0值替换它们(它接受任何未定义的符号并用0替换它们):

#if 0==0

然后计算结果为1,因此预处理器将评估该块.

解决此问题,请尝试为ASC和NOASC提供不同的数值,如下所示:

#define ASC    0
#define NOASC  (1 + (ASC))

希望这可以帮助!

原文链接:https://www.f2er.com/c/116314.html

猜你在找的C&C++相关文章