私は 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の初期化でもコンパイルが失敗することを望みます。ソースコードの読み取りが容易になるため、指定された初期化を好みます。