通过初始化程序设置array-of-structs元素的语法?

时间:2014-11-27 10:43:22

标签: 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

1 个答案:

答案 0 :(得分:4)

使用复合文字:

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