我昨天发现了一些 struct 初始化代码,这让我很困惑.下面是一个例子:
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
如您所见,该 struct 已正确初始化.我不知道带标签的语句可以这样用.我见过几种其他的 struct 初始化方法,但在任何在线C常见问题解答中都没有找到任何这种 struct 初始化的示例.有没有人知道这是怎么回事/为什么这么做?