在无法识别##的编译器上,在可变参数宏中包含逗号>> [

问题描述 投票:3回答:2
我需要在C中编写一个可变参数宏,该宏必须接受零个或多个参数。

在gcc中,可以通过在逗号后添加“ ##”来实现,例如,##____VA_ARGS____中回答的Variadic macros with zero arguments

但是,我的构建系统中的编译器(超出我的控制范围)不理解,##语法,因此不会吞下逗号。

我可以使用替代方法吗?

谢谢!

我需要在C中编写一个可变参数宏,该宏必须接受零个或多个参数。在gcc中,可以通过在逗号后添加“ ##”来实现,例如,## ____ VA_ARGS____在带有...

c gcc macros comma variadic
2个回答
4
投票
是的,gcc吞下逗号是非标准的,您不应该依赖它。

0
投票
使用简化版本Jens spelled out,下面描述一种可能的方法。
© www.soinside.com 2019 - 2024. All rights reserved.