2

在带有 Linux 的 GNU-GCC 中,这是 #define sprintfc(string, ...) sprintf(string+strlen(string), ##__VA_ARGS__) 有效的。对于 Visual Studio 2010 是否有具有相同效果的定义?

4

1 回答 1

0

Microsoft Visual C 编译器确实支持可变参数宏。但是,问题在于GCC 扩展 ##,如果没有传递参数,它会删除前导逗号。

因为 sprintf() 永远不会在没有第二个参数的情况下被调用,所以如果你只删除##,你的代码应该可以正常工作。

于 2012-09-04T15:30:09.110 回答