if else 为预处理器定义
if else define for preprocessor
//initial code:
#define MYDEBUG YES
#if (defined(MYDEBUG) && MYDEBUG == YES)
#define NATIVEUNITID @"unitid_debug"
#else
#define NATIVEUNITID @"unitid_release"
#endif
//somewhere inside the code
NATIVEUNITID
是 @"unitid_release"
可能是我有点不明白。但为什么?什么是正确的定义方法
NATIVEUNITID
使用其他定义?
我已经尝试了 #if (MYDEBUG)
和 #if (MYDEBUG == true)
但我得到了相同的结果。
请帮我理解这个简单的案例。我怎样才能收到
NATIVEUNITID
是 @"unitid_debug"
?
预处理器无法为 "strings" 计算 ==
。
如果你写#DEFINE YES 1
,你可以保留你的符号
改进
#if !defined(YES)
#define YES (BOOL)1
#endif
#if !defined(NO)
#define NO (BOOL)0
#endif
之前
#define MYDEBUG YES
//initial code:
#define MYDEBUG YES
#if (defined(MYDEBUG) && MYDEBUG == YES)
#define NATIVEUNITID @"unitid_debug"
#else
#define NATIVEUNITID @"unitid_release"
#endif
//somewhere inside the code
NATIVEUNITID
是 @"unitid_release"
可能是我有点不明白。但为什么?什么是正确的定义方法
NATIVEUNITID
使用其他定义?
我已经尝试了 #if (MYDEBUG)
和 #if (MYDEBUG == true)
但我得到了相同的结果。
请帮我理解这个简单的案例。我怎样才能收到
NATIVEUNITID
是 @"unitid_debug"
?
预处理器无法为 "strings" 计算 ==
。
如果你写#DEFINE YES 1
改进
#if !defined(YES)
#define YES (BOOL)1
#endif
#if !defined(NO)
#define NO (BOOL)0
#endif
之前
#define MYDEBUG YES