spe*_*ncs 12 c debugging c-preprocessor
为了调试方便,我编写了以下宏
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
Run Code Online (Sandbox Code Playgroud)
但gcc抱怨如下
def.h:4: error: '#' is not followed by a macro parameter
def.h:1: error: unterminated #ifndef
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?我在这里错过了一些重点吗?
Oli*_*rth 23
你不能#ifdef在宏定义中有s.你需要把它翻出来:
#ifdef DEBUG_MODE
#define DEBUG_INFO(message) cout << (message) << endl
#else
#define DEBUG_INFO(message)
#endif
Run Code Online (Sandbox Code Playgroud)