У меня есть структура c в заголовочном файле: -
typedef struct sample
{
char *member1;
char **member2;
long *member3;
unsigned int member4;
} example;
Я объявил переменную typedef по умолчанию в том же заголовочном файле: -
const example defaultValue;
Определение defaultValue находится в файле c: -
const example defaultValue =
{
NULL,
NULL,
NULL,
99
};
Теперь в другом файле c, если я это сделаю,
example example1 = defaultValue;
всем членам присваивается NULL, как и ожидалось, но «unsigned int member4» присваивается значение 0 вместо 99. Это очень странно, потому что defaultValue.member4 равно 99. Может кто-нибудь объяснить это необычное поведение? Есть ли лучший способ выполнить инициализацию структуры по умолчанию?