昨天我发现了一些结构体初始化代码,让我感到困惑。这里是一个例子:
typedef struct { int first; int second; } TEST_STRUCT;
void testFunc() {
TEST_STRUCT test = {
second: 2,
first: 1
};
printf("test.first=%d test.second=%d\n", test.first, test.second);
}
令我惊讶的是,这里是输出结果:
-> testFunc
test.first=1 test.second=2
如您所见,结构体得到了正确的初始化。我不知道标记语句可以这样使用。我已经看过其他几种做结构体初始化的方法,但在任何在线C常见问题解答中都没有找到这种类型的结构体初始化的示例。有人知道为什么和如何工作吗?
struct point p = { y: yvalue, x: xvalue };
- Andrew Cottrell