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

Программы на C++. Форум разработчиков
Anonymous
C и C++: частичная инициализация автоматической структуры

Сообщение Anonymous »

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

Код: Выделить всё

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

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

Если вы не инициализируете структурную переменную, эффект зависит от того,
имеет ли она статическое хранилище (см. Спецификаторы класса хранения) или
нет. Если это так, члены целочисленного типа инициализируются значением 0, а элементы-указатели
инициализируются значением NULL; в противном случае значение элементов
структуры является неопределенным.


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

Подробнее здесь: https://stackoverflow.com/questions/108 ... -structure

Вернуться в «C++»