[英]Objective-C preprocessor directive for 'if not'
我理解如何使用这样的预处理器指令:
#if SOME_VARIABLE
// Do something
#else
// Do something else
#endif
但是,如果我只想做某事,如果不是SOME_VARIABLE那会怎么样呢。
显然我仍然可以这样做:
#if SOME_VARIABLE
#else
// Do something else
#endif
。 。 。 离开if,但有没有办法:
#if not SOME_VARIABLE
// Do something
#endif
这里的 Apple文档没有提示,但这似乎是一个非常基本的需求。
基本上我想做预处理器相当于:
if(!SOME_VARIABLE)(
{
// Do Something
}
你可以尝试:
#if !(SOME_VARIABLE)
// Do something
#endif
您是否尝试检查是否定义了某些内容? 如果是,您可以尝试:
#ifndef SOME_VARIABLE
要么
#if !defined(SOME_VARIABLE)
Apple文档( 如果 - C预处理器 )是正确的,这是C预处理器语句从一开始就是这样的方式。 根据相同的文档,您所能做的就是制作一个表达式,该表达式计算为零或非零值并使用它。
Meccan的答案是正确的,因为TARGET_IPHONE_SIMULATOR
被定义为TRUE
或FALSE
具体取决于平台,因此表达式将评估为零或非零金额。
通常,这些宏( #if
等)用于根据是否定义符号来包括或排除事物。 对于该用例,预处理器具有#ifdef
和#ifndef
,其涵盖了历史上被认为是最重要的情况。
另外,鉴于这些陈述的主题只能是其他预处理器定义的符号(通过#define
),那么这种限制是合理的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.