Например, если somestruct
имеет три целочисленных члена, я всегда думал, что это нормально делать в C (или С++):
somestruct s = {123,};
Первый член будет инициализирован до 123, а последние два будут инициализированы на 0. Я часто делаю то же самое с автоматическими массивами, записывая int arr[100] = {0,};
, чтобы все целые числа в массиве инициализировались до нуля.
Недавно я прочитал в Справочном руководстве GNU C:
Если вы не инициализируете структурную переменную, эффект зависит от имеет ли он статическое хранилище (см. Спецификации класса хранения) или не. Если это так, члены с целыми типами инициализируются 0 и элементы указателя инициализируются в NULL; в противном случае значение члены структуры являются неопределенными.
Может кто-нибудь, пожалуйста, скажите мне, что говорят стандарты C и С++ относительно частичной автоматической структуры и автоматической инициализации массива? Я делаю вышеуказанный код в Visual Studio без проблем, но я хочу быть совместимым с gcc/g++ и, возможно, другими компиляторами. Благодаря