在this对Hacker News的评论中,提到了这种语法:
func((struct somestruct){.x = 0, .y = 1});
有人可以告诉我这是什么叫做,然后给出一个完整的函数声明示例吗? (不是这个确切的函数调用,只是这个概念的完整演示。)或者指出一些资源,我可以在这里了解更多。谢谢!
编辑:随意评论你为何投票。
答案 0 :(得分:2)
有人可以告诉我这叫做什么
(){}
运算符称为复合文字运算符,使用其名称初始化结构成员称为指定的初始值函数。复合文字和指定的初始化器都是c99中引入的特性。
复合文字在c99中的6.5.2.5和6.7.8中的指定初始化器中描述。
答案 1 :(得分:2)
这是复合文字。这将创建一个struct somestruct
的实例,该实例在函数调用表达式的末尾消失,并将其传递给func。
该功能的签名只是:
[whatever] func(struct somestruct arg);