0

对不起这个问题的标题,一旦我得到答案,我可能会更新标题。

我有这个古老的代码编译和使用 gcc 4.x:

struct S {
    int a;
    int b;
};

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

如您所见,我将{1,2}tostruct S转换为访问 member a。这个特性在 C 语言中是如何调用的?或者适用于这个结构的正确术语是什么?

任何 Visual Studio 版本都支持此功能吗?

4

1 回答 1

3

它被称为复合文字,它是在 C99 中引入的。标准中的相关部分是6.5.2.5 复合文字

坏消息是 Visual Studio 目前仅支持 C89,因此 Visual Studio 不支持此功能。

于 2013-10-03T16:03:48.060 回答