如果我有一个看起来像这样的原型:
function(float,float,float,float)
我可以传递这样的值:
function(1,2,3,4);
所以如果我的原型是这样的:
function(float*);
有什么办法可以实现这样的目标吗?
function( {1,2,3,4} );
只是在寻找一种不创建临时变量的懒惰方法,但我似乎无法确定语法。
原文由 sinoth 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 复合文字 在 C99(但 不是 ANSI C (C90) 或任何当前的 C++ 变体)中执行此操作。有关详细信息,请参阅 C99 标准的第 6.5.2.5 节。这是一个例子:
GCC 也将其作为 C90 的扩展提供。如果您使用
-std=gnu90
(默认)、-std=c99
或-std=gnu99
进行编译,它将编译;如果你用-std=c90
编译,它不会。