c - 使用 Visual Studio 访问复合文字的成员

标签 c visual-studio struct

<分区>

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

我用 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,因此 Visual Studio 不支持此功能。

关于c - 使用 Visual Studio 访问复合文字的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19163594/

相关文章:

c++ - 128 位 int 是用 C/C++ 中的两条指令编写还是加载?

c# - 如何在 xamarin android 项目上集成 webrtc android native 库?

C# 如何从 .t​​xt 文件中的列表中读取并将它们放入列表中?

c# - 除非手动删除所有输出文件,否则应用程序不会启动

c - 使用 -> 访问结构体的属性,但编译器错误告诉我使用 ->?

c - 返回指向静态定义的结构数组的指针

c++ - C或C++语言中的数组实际上是指针吗

c - GetProcAddress(GetModuleHandle ("user32.dll"), "DefWindowProcW") 返回 ntdll 中的地址

c - 来自类 C 引用的并行 Verilog CRC 算法

c - 使用嵌套结构数组进行结构初始化