Warum beschweren sich Compiler über diese Makro-Deklaration?

Ich schreibe das folgende Makro zum Debuggen,

<code>1 #ifndef DEF_H
2 #define DEF_H
3 #define DEBUG_MODE
4 #define DEBUG_INFO(message)     \
5         #ifdef DEBUG_MODE       \
6                 cout << message << endl; \
7         #endif                          \
8 #endif
</code>

aber gcc beschwert sich wie folgt

<code>def.h:4: error: '#' is not followed by a macro parameter
def.h:1: error: unterminated #ifndef
</code>

Was ist los mit diesem Stück Code? Vermisse ich hier einige wichtige Punkte?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage