【问题标题】:Accessing member of compound literal using Visual Studio [duplicate]使用 Visual Studio 访问复合文字的成员 [重复]
【发布时间】:2023-04-04 19:54:02
【问题描述】:

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

我有这个古老的代码编译和使用 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 版本都支持此功能吗?

【问题讨论】:

标签: c visual-studio struct


【解决方案1】:

它叫compound literal,是在C99中引入的。标准中相关部分为6.5.2.5 Compound literals

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

【讨论】:

  • VS 2013 在 C 模式下引入了对 C99 复合文字的支持。
猜你喜欢
  • 2018-11-08
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
相关资源
最近更新 更多