一、通过不定参宏进行日志输出
#define LOGINFO(fmt,...) printf("[%s][%s]", __FUNCTION__, GETINFO(fmt, __VA_ARGS__))
通过参数 __VA_ARGS__ 来展开不定参数, 这里借助宏可以输出日志的位置等信息。
这里不定参的输入如果为空,linux下可能无法编译通过,你需要加 ##
#define LOGINFO(fmt,...) printf("[%s][%s]", __FUNCTION__, GETINFO(fmt, ## __VA_ARGS__))
二、如果你需要在宏中继续展开并使用参数,在windows下会变成一个参数,如下:
#define SUBPROCESS(X,...) X
#define MYPROCESS(...) SUBPROCESS(__VA_ARGS__)
X取到的,将会时所有的参数,你可以用以下办法解决
#define EXPAND(...) __VA_ARGS__
#define SUBPROCESS(X,...) X
#define MYPROCESS(...) EXPAND(SUBPROCESS(__VA_ARGS__))