【问题标题】:How do I initialize a struct in C based on the member's name如何根据成员的名称在 C 中初始化结构
【发布时间】:2011-01-22 03:37:25
【问题描述】:

在 C 中,我经常看到这样初始化的结构:

struct size aSize;
aSize.x = 100;
aSize.y = 42;

但在其他语言中,您可以在一行中创建“类似”结构的数据结构,例如:

aSize = {
    x : 100,
    y : 42
};

C 中是否支持类似的语法?

我知道 Javascript 的“结构”类数据结构实际上是一个没有定义参数的哈希,我只是想展示语法

【问题讨论】:

  • 我认为更合适的标题是“如何根据成员的名称在 C 中初始化结构”或类似的内容。

标签: c data-structures syntax struct


【解决方案1】:

C99 允许以下“order agnostic”初始化:

struct aSize {
    int x;
    int y;
} aSize = { .y = 4, .x = 5 };

有关工作示例,请参阅 this link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-11
    • 2013-12-14
    • 2011-01-17
    • 2011-05-03
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多