¿Por qué el compilador se queja de esta macro declaración?
Escribo la siguiente macro para conveniencia de depuración,
<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>
pero gcc se queja de lo siguiente
<code>def.h:4: error: '#' is not followed by a macro parameter def.h:1: error: unterminated #ifndef </code>
¿Qué pasa con este pedazo de código? ¿Me pierdo algunos puntos importantes aquí?