我有以下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
答案 0 :(得分:4)
使用复合文字:
data[3] = ( Point2D ){.x = a, .y = b};