This question already has answers here:
Closed 5 years ago.
Compound literals in MSVC
(4个答案)
请原谅这个问题的标题,我可能会在得到答案后更新标题。
我有这个古老的代码编译和使用gcc 4.x:
struct S {
    int a;
    int b;
};

int main(void)
{
    return (struct S){1,2}.a;
}

如您所见,我将{1,2}转换为struct S以访问成员a。这个特性在C语言中是如何调用的?或者这个结构的正确术语是什么?
此功能在任何visual studio版本中都受支持吗?

最佳答案

它被称为compound literal,在C99中引入。本标准中相关部分为6.5.2.5 Compound literals
坏消息是Visual Studio现在只支持C89,所以visualstudio不支持此功能。

10-01 03:07