Ich habe eine Frage zu Pre-Prozessor-Direktiven in c ++:
Zum Beispiel:
#ifndef QUESTION
//some code here
#ifndef QUESTION
//some code here
#endif
#endif
Können wir es auf diese Weise verwenden und kann der C ++ - Compiler mit dem ifndef
und endif
auf die richtige Weise übereinstimmen ?
c++
c-preprocessor
preprocessor-directive
Brian Tompsett - 汤 莱恩
quelle
quelle
#define AAA #define XXX
- es funktioniert nicht richtig.Antworten:
Ja wir können. Die
#endif
Anweisung stimmt mit der vorherigen#if
#ifdef
oder#ifndef
usw. überein, für die es keine entsprechende Anweisung gibt#endif
.z.B
#if ----------| #if -----| | #endif ---| | #endif --------|
quelle
Ja, Sie können verschachteln
#if
/#endif
blockieren. Einige C-Codierungsstile empfehlen Ihnen, zu schreiben#ifdef CONDITION1 # ifdef CONDITION2 # endif #endif
Verwenden von Leerzeichen, um die Verschachtelungsebene anzugeben.
quelle
#ifdef
#
und Präprozessor-Direktiven erlaubt sind. Vielen Dank für diesen Tipp!In Ihrem Code wird der Abschnitt #ifndef QUESTION verworfen, es sei denn, Sie haben #undef QUESTION.
Viel Glück!
quelle