我在同一个 C 源文件中看到了 #ifndef ABC
和 #if !defined (ABC)
。
它们之间有细微的区别吗? (如果是风格问题,为什么有人会在同一个文件中使用它们)
最佳答案
不,以这种方式使用时,两者之间没有区别。当初始 #if
或后续 #elif
条件之一需要更复杂的测试时,后一种形式(使用 defined()
)很有用. #ifdef
仍然有效,但在这种情况下使用 #if defined()
可能会更清楚。例如,如果它需要测试是否定义了多个宏,或者它是否等于一个特定值。
差异(在文件中同时使用)可能取决于使用中的特定细微差别,如上所述,或者只是不一致的不良做法。
关于c - C中 "ifndef"和 "if !defined"的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8617712/