c - 通过初始化程序设置结构数组元素的语法?

标签 c arrays gcc struct c99

我有以下 C 代码:

typedef struct {
    int x,y;
} Point2D;

Point2D data[5];

稍后在我的代码中(即不在 data 初始化期间),我想根据 x/y 值设置数据的各个元素。两语句代码很简单:

Point2D pt = {.x = a, .y = b};
data[3] = pt;

但是在 C 中有没有一种方法可以在一条语句中做到这一点?以下想法似乎都不是有效的 C99 代码(对于 GCC 4.8.2):

data[3] = {.x = a, .y = b};
data[3] = Point2D{.x = a, .y = b};
data[3] = Point2D(a,b); //C++-like syntax

最佳答案

使用复合文字:

data[3] = ( Point2D ){.x = a, .y = b};

关于c - 通过初始化程序设置结构数组元素的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27168647/

相关文章:

javascript - 如何在 AngularJS 中保存对象的 JSON 索引位置,而不是对象本身?

javascript - 按数组值的 Angular 自定义过滤器

c++ - C 和 C++ 的优化工具

c++ - 在可变参数模板方法和普通模板方法之间进行选择的规则是什么?

c - 我正在编写一个 lex 代码,其中正则表达式部分的给出与详细部分中的完全相同。我遇到的主要问题是文本的 RE

c - 数组的 Sizeof...它是如何工作的?

c - 共享内存和 unix domain socket 同步,不重复 shm 内容

c++ - 双值的 sprintf 格式化

arrays - 通过 PowerShell 中的 Foreach 循环动态标点和语法更正字符串

c - GCC-修改函数返回后继续执行的地方