具有2个参数的C ++预处理宏

dim*_*mba 5 c++ c-preprocessor

我有以下宏:

 #define LOG(level,text)
Run Code Online (Sandbox Code Playgroud)

我想定义包含级别和文本的宏:

#define MY_LOG_MESSAGE LEVEL1,"This is my log"
Run Code Online (Sandbox Code Playgroud)

这样我就可以运行:

  LOG(MY_LOG_MESSAGE);
Run Code Online (Sandbox Code Playgroud)

gcc发出预处理错误:

错误:宏“ LOG”需要2个参数,但仅给出1个

有任何想法吗?

Wut*_*utz 1

如果您无论如何都为每个日志消息使用定义,也许可以这样做:

#define LOG_MY_MESSAGE LOG(LEVEL1, "This is my log")

并在代码中简单地使用

LOG_MY_MESSAGE