//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"
?
Відповіді:
1 для відповіді № 1Препроцесор не може оцінити ==
для "рядків".
Ви можете зберегти свої позначення, якщо ви пишете #DEFINE YES 1
0 для відповіді № 2
Покращувати ця відповідь
#if !defined(YES)
#define YES (BOOL)1
#endif
#if !defined(NO)
#define NO (BOOL)0
#endif
раніше
#define MYDEBUG YES