Почему компилятор жалуется на это объявление макроса

Я пишу следующий макрос для удобства отладки,

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

но gcc выдает следующее

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

Что не так с этим фрагментом кода? Я пропустил некоторые важные моменты здесь?

12
задан a3f 31 March 2015 в 03:23
поделиться