Por que o compilador reclama dessa declaração macro
Eu escrevo a macro a seguir para a conviniência de depuração,
<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>
mas gcc reclama como o seguinte
<code>def.h:4: error: '#' is not followed by a macro parameter def.h:1: error: unterminated #ifndef </code>
O que há de errado com este pedaço de código? Eu sinto falta de alguns pontos importantes aqui?