可变参数宏的 2 种不同语法
#define TEST(X, ...) X ## __VA_ARGS__ // (1)
#define TEST(X, args...) X ## args // (2)
它们之间有什么功能差异吗? (即在某些情况下,其中之一可以比其他方式更好地使用)。另外,这两种语法都包含在 C++11 中吗?
#define TEST(X, ...) X ## __VA_ARGS__ // (1)
#define TEST(X, args...) X ## args // (2)
Is there any functional difference between them ? (i.e. one of them can be used in a better way then other in certain cases). Also, are both the syntax included in C++11 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一种语法是标准 C99 和标准 C++11。我认为第二个是 GNU 特定的扩展。
The first syntax is standard C99 and also standard C++11. The second is, I believe, a GNU specific extension.