当我查看一些类时,我对"pound if“或#if
语法感到有点困惑。
例如:
#if someConstant == someNumber
do something
#elif
etc
对比:
if (someConstant == someNumber)
do something
else if {
do more stuff
}
有什么区别,为什么要使用#if
?
发布于 2011-10-07 10:09:09
#if
等都是预处理器指令。这意味着它们是在编译之前处理的,而不是在运行时。例如,在定义仅在为debug
而不是release
生成时才编译的调试行为时,这可能很有用
#if DEBUG
#define ISRelease(x) [x release]
#else
#define ISRelease(x) [x release], x = nil
#endif
(代码由Jeff LaMarche的blog提供。)
这样,你就不需要在提交应用程序之前浏览整个应用程序的代码,也不需要删除大量调试代码。这只是使用这些指令的一个小示例。
发布于 2016-03-07 12:26:14
前面的答案涵盖了从调试到术语的#if
用法,并且遗漏了一个更常见的用法:#if
用于注释大量代码。当程序员需要删除一些已经包含注释的东西时,这是很有用的。
#if 0
a lof of C code with /* style */ comments included
#endif
我确实用得很多。它比任何其他#if
和注释风格都更有优势--它真的不关心其中的大部分错误语法。
https://stackoverflow.com/questions/7682400
复制相似问题