我是一个 C 源代码,我想确保我的结构的所有元素都被很好地初始化。警告 Wmissing-field-initializers 会很容易。但我也希望能够使用指定的初始化程序来初始化我的元素。
例如:
struct s {
int a;
int b;
};
struct s s1 = { .a = 1, .b = 2 };
struct s s2 = { .a = 1 };
struct s s3 = { 1, 2 };
struct s s4 = { 1 };
让我们尝试编译它:
$ gcc -Wmissing-field-initializers -c struct_init.c
struct_init.c:9:8: warning: missing initializer
struct_init.c:9:8: warning: (near initialization for ‘s4.b’)
我也希望 s2 初始化的编译失败。我更喜欢指定的初始化,因为它有利于源代码的阅读。