Welchen Wert hat ein Define das ohne Wert definiert wurde?
-
Hallo,
welchen Wert hat das Define FOO, falls es ohne Wert definiert wurde und in einem #if ausgewertet wird?
Zum Beispiel so:
#define FOO #if FOO int i = 0; #else int i = 1; #endif
Und wie sieht es mit Symbolen aus die in einem #if Ausdruck ausgewertet wurden, aber vorher nicht definiert wurden?
Zum Beispiel so:
#if BAR int i = 0; #else int i = 1; #endif
Sagt der Standard dazu etwas?
Danke & Grüße
-
Was genau hast Du denn vor?
Wenn FOO ein definiertes Macro ist, kompiliert Dein erstes Beispiel nicht. Vielleicht meinst Du #ifdef?In Deinem zweiten Beispiel würde BAR mit 0 ersetzt, und die gesamte constant expression nach dem #if würde zu false evaluieren.
Nach
#define FOO
würden Auftreten von FOO übrigens mit einer leeren Liste von preprocessing tokens ersetzt...also durchaus definiert.