C и C ++: частичная инициализация автоматической структуры

Например, еслиsomestruct имеет три целочисленных члена, я всегда думал, что это нормально делать в функции C (или C ++):

somestruct s = {123,};

Первый элемент будет инициализирован 123, а последние два - 0. Я часто делаю то же самое с автоматическими массивами:int arr[100] = {0,}; так что все целые числа в массиве инициализируются в ноль.


Недавно я прочитал вGNU C Справочное руководство тот:

If you do not initialize a structure variable, the effect depends on whether it is has static storage (see Storage Class Specifiers) or not. If it is, members with integral types are initialized with 0 and pointer members are initialized to NULL; otherwise, the value of the structure's members is indeterminate.


Может кто-нибудь сказать мне, что говорят стандарты C и C ++ относительно частичной автоматической структуры и автоматической инициализации массива? Я делаю приведенный выше код в Visual Studio без проблем, но я хочу быть совместимым с gcc / g ++ и, возможно, другими компиляторами. Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос