Мне известно, что в C99 вы можете инициализировать членов структуры, используя имя члена, следующим образом:
struct myStruct
{
int i;
char c;
float f;
};
Итак, верно следующее:
struct myStruct m = {.f = 10.11, .i = 5, .c = 'a'};
Также сказано, что неинициализированные члены будут установлены в 0
. Так
struct myStruct m = {.f = 10.11, .c = 'a'};
здесь i
будет установлено значение 0
Но для следующего:
struct myStruct m = {.f = 10.11, .c = 'a', 6};
i
по-прежнему инициализируется равным 0. В чем причина, если мы выполняем такую сложную инициализацию.