Die #ifdef Direktive wird benutzt, zu überprüfen, ob ein Präprozessorsymbol definiert ist. Die Standard (C11 6.4.2 Identifiers
) Mandate, die Bezeichner darf nicht mit einer Ziffer beginnen:
identifier:
identifier-nondigit
identifier identifier-nondigit
identifier digit
identifier-nondigit:
nondigit
universal-character-name
other implementation-defined characters>
nondigit: one of
_ a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
digit: one of
0 1 2 3 4 5 6 7 8 9
Die richtige Form der Pre-Prozessor für die Verwendung von Code zu blockieren, ist:
#if 0
: : :
#endif
Sie auch verwenden können:
#ifdef NO_CHANCE_THAT_THIS_SYMBOL_WILL_EVER_EXIST
: : :
#endif
, aber Sie müssen sicher sein, dass die Symbole nicht versehentlich von Code othe eingestellt werden r als dein eigenes. Mit anderen Worten, verwenden Sie nicht so etwas wie NOTUSED
oder DONOTCOMPILE
, die andere auch verwenden können. Um sicher zu sein, sollte die Option #if
bevorzugt werden.
Ich glaube, du hast dich geirrt; #ifdef 0 ist ein Fehler in C sowie C++. –
Sie haben Recht, ich habe falsch geschrieben, es funktioniert nicht in C, ich werde nicht die Frage löschen, weil vielleicht jemand in der Zukunft den gleichen Fehler macht. – Eduardo
@Eduardo Danke, dass du die Frage nicht gelöscht hast. – kartik