什么是c中的指定初始值设定项?
我知道这可能是一个基本问题。
我有一个任务,要求我理解c中的指定初始化器是什么以及用一个初始化变量意味着什么。 我对这个术语不熟悉,也找不到任何结论性的定义。
我一直在寻找不同地方的答案,但找不到任何答案。 谢谢您的帮助!
指定的初始化程序有两种forms:
1)它提供了一种初始化数组中特定元素的快速方法:
int foo[10] = { [3] = 1, [5] = 2 };
将所有元素设置为foo
为0,除了索引3(将设置为1)和索引5(将设置为2)。
2)它提供了一种显式初始化struct
成员的方法。 例如,对于
struct Foo { int a, b; };
你可以写
struct Foo foo { .a = 1, .b = 2 };
请注意,在这种情况下,未显式初始化的成员将初始化,就像实例具有static
持续时间一样。
两者都是标准C,但请注意C ++也不支持(因为构造函数可以使用该语言完成工作。)