Makro może być zdefiniowana, to można zdefiniować bez wartości lub może być określony pewną wartością, ewentualnie liczbą. Przykłady:
#undef MACRO
#define MACRO
#define MACRO ??????
#define MACRO 0
#define MACRO 1
#ifdef MAKRO lub zdefiniowany #if (MACRO) sprawdza, czy makro jest zdefiniowane, z wartością lub bez niej.
#if MAKRO zastępuje definicję makra; jeśli makro nie jest zdefiniowane, to zastępuje 0. Następnie ocenia znalezione wyrażenie. Jeśli weźmiemy pięć powyższych przykładów, #if MAKRO zostanie zamienione na
#if 0
#if
#if ??????
#if 0
#if 1
Liczba 2 i 3 dają błąd czasu kompilacji. Liczba 1 i 4 oceniają wartość fałsz, więc poniższy kod jest pomijany. Numer 5 jest prawdziwy.
#if jest bardziej elastyczny: Można napisać
#if MACRO == 2
który będzie kompilować tylko następujący kod Jeśli makro zostało zdefiniowane na przykład jako
#define MACRO 2
Dzięki. Aby się upewnić: czy #define IPAD_BUILD wystarczy, aby go zdefiniować (bez żadnych wartości?) Czy w tym przypadku #ifdef IPAD_BUILD zwrócił wartość true? – Geri
Wygląda tak ._____ – Geri
faktycznie nie =) Będę zmienić odpowiedź. – Stas