c - 如何根据成员名称在 C 中初始化结构体

标签 c data-structures syntax struct

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

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

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

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

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

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

最佳答案

C99 允许以下“顺序无关”初始化:

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

参见this link一个工作示例

关于c - 如何根据成员名称在 C 中初始化结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766012/

相关文章:

c - atol() 与 strtol()

ruby - ruby 2.3 安全运算符 "&."和 CoffeeScript 存在运算符 ".?"之间的差异

algorithm - 插入后查找二叉堆节点的位置

c - 使用宏在 C 中实现通用 vector 。这是个好主意吗?

bash - Bash 中的表达式递归级别超出错误

MYSQL 日期查询语法格式不正确

c++ - 使用 Visual C++ 2008 在 C/C++ 上处理大整数

c - 共享内存忽略 Linux c 中的只读标志

c - C 中函数所花费的时间。获取奇怪的值

php - 在 Linux 中的 C 可执行文件和 PHP 之间传递数据结构?