//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
jest @"unitid_release"
Może nie rozumiem czegoś. Ale dlaczego? Jaki jest właściwy sposób definiowania
NATIVEUNITID
używając innego określenia?
Próbowałem obu #if (MYDEBUG)
i #if (MYDEBUG == true)
ale otrzymuję ten sam wynik.
Proszę, pomóż mi zrozumieć ten prosty przypadek. Jak mogę otrzymać
NATIVEUNITID
jest @"unitid_debug"
?
Odpowiedzi:
1 dla odpowiedzi № 1Preprocesor nie może ocenić ==
dla „ciągów”.
Możesz zachować swój zapis, jeśli piszesz #DEFINE YES 1
0 dla odpowiedzi nr 2
Ulepszyć ta odpowiedź
#if !defined(YES)
#define YES (BOOL)1
#endif
#if !defined(NO)
#define NO (BOOL)0
#endif
przed
#define MYDEBUG YES