Visual C++ 宏中的可变长度参数

Variable length args in macro in Visual C++

在主要使用 gcc 多年之后,我突然需要在 Windows 上使用 Visual C++。我需要翻译的最新内容是:

#ifdef DBG_ENABLE
#define DBG_PRINT(x...)  printf(x)
#else
#define DBG_PRINT(x...)
#endif

这给了我这个错误:

error C2010: '.': unexpected in macro parameter list

有人可以分享Windows这样做的方法吗?

我尝试使用谷歌搜索和搜索 Microsoft 文档,但无法找到一种方法来表达带来相关结果的问题。

#define DBG_PRINT(x...) printf(x) 不是在 VC++ 中使用可变参数宏的正确语法。

根据 Variadic macros 上的 Microsoft 文档,试试这个:

#ifdef DBG_ENABLE
#define DBG_PRINT(...) printf(__VA_ARGS__)
#else
#define DBG_PRINT(...)
#endif

或者:

#ifdef DBG_ENABLE
#define DBG_PRINT(s, ...) printf(s, __VA_ARGS__)
#else
#define DBG_PRINT(s, ...)
#endif