需要帮助理解XCode中的预处理器消息宏

时间:2011-07-18 13:36:55

标签: iphone objective-c xcode ipad

我以前没有必要使用预处理器宏,并在网上遇到了这段代码:

#ifndef LITE_VERSION 
    #ifndef FULL_VERSION
        #error
    #endif 
#endif

这样做的目的是警告是否未声明LITE或FULL。我已将其放在Prefix.pch文件中,并收到#error语句的警告。

我尝试将错误更改为:

#pragma message("some text")

虽然这会编译,但没有显示任何文字(我可以看到)。

我还没有宣布LITE或FULL,所以我想知道为什么这不起作用。

2 个答案:

答案 0 :(得分:4)

这应该是:

#pragma message "some text"

如果您愿意,也可以使用此功能:

#pragma message ("some text")

请参阅http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html

通常我使用稍微不同的方法:

#if defined(LITE_VERSION)
   ...
#elseif defined(FULL_VERSION)
   ...
#else
#error "Must define LITE_VERSION or FULL_VERSION"
#end

答案 1 :(得分:1)

它应该像以前一样处理错误。只需添加消息并构建

即可
#ifndef LITE_VERSION
    #ifndef FULL_VERSION
        #error "Neither Lite or Full version has been defined"
    #endif
#endif