Почему компилятор, бросающий это предупреждение: “недостающий инициализатор”? Разве структура не инициализируется?

Microsoft SDK могла использоваться разработчиком для создания их программ. Заключительным пользователям обычно не нужен он.

Microsoft Framework вместо этого обязательна, если Вы хотите запустить приложения.NET на машине.

69
задан tshepang 11 November 2015 в 14:10
поделиться

2 ответа

Это сильно зависит от поддержки IDE. Я считаю, что аннотации должны синхронизироваться с кодом с помощью проверок в IDE, но такой поддержки для этого несколько не хватает.

Например, более старая версия IDEA предупреждает, если вы переопределяете функцию без @Override, но не t удалите тег @Override, если вы изменили сигнатуру метода (или сигнатуру суперкласса, если на то пошло) и разорвали связь.

Без поддержки я считаю их обременительным способом добавления метаданных в код.

или меньше символов в строковом литерале, используемом для инициализации массива известного размера, чем количество элементов в массиве, оставшаяся часть агрегата должна быть инициализирована неявно так же, как объекты, которые имеют статическую продолжительность хранения.

C90 говорит, по сути, то же самое в 6.5.7 с немного другой формулировкой (другими словами, C99 не добавил сюда ничего нового).

Также обратите внимание, что в C ++ это было расширено, так что пустой набор фигурных скобок, " {} ", будет выполнять инициализацию значения для объекта, потому что были ситуации (например, шаблоны), когда вы даже не знали, какие члены или сколько членов может иметь тип. Так что это не только хорошая практика, но и иногда необходимо иметь список инициализаторов, который короче, чем количество членов, которые может иметь объект.

остальная часть агрегата должна быть инициализирована неявно так же, как объекты, которые имеют статическую продолжительность хранения.

C90 говорит, по сути, то же самое в 6.5.7 с немного другой формулировкой (другими словами, C99 не добавил здесь ничего нового) .

Также обратите внимание, что в C ++ это было расширено так, что пустой набор фигурных скобок, « {} », будет выполнять инициализацию значения для объекта, потому что были ситуации (например, шаблоны), когда вы этого не делали. Я даже не знаю, какие члены или сколько членов может иметь тип. Так что это не только хорошая практика, но и иногда необходимо иметь список инициализаторов, который короче, чем количество членов, которые может иметь объект.

остальная часть агрегата должна быть инициализирована неявно так же, как объекты, которые имеют статическую продолжительность хранения.

C90 говорит, по сути, то же самое в 6.5.7 с немного другой формулировкой (другими словами, C99 не добавил здесь ничего нового) .

Также обратите внимание, что в C ++ это было расширено так, что пустой набор фигурных скобок, « {} », будет выполнять инициализацию значения для объекта, потому что были ситуации (например, шаблоны), когда вы этого не делали. Я даже не знаю, какие члены или сколько членов может иметь тип. Так что это не только хорошая практика, но и иногда необходимо иметь список инициализаторов, который короче, чем количество членов, которые может иметь объект.

C99 не добавил здесь ничего нового).

Также обратите внимание, что в C ++ это было расширено так, что пустой набор фигурных скобок, « {} », будет выполнять инициализацию значения для объекта, потому что были ситуации (например, шаблоны), когда вы даже не знаете, какие члены или сколько членов может иметь тип. Так что это не только хорошая практика, но и иногда необходимо иметь список инициализаторов, который короче, чем количество членов, которые может иметь объект.

C99 не добавил здесь ничего нового).

Также обратите внимание, что в C ++ это было расширено так, что пустой набор фигурных скобок, « {} », будет выполнять инициализацию значения для объекта, потому что были ситуации (например, шаблоны), когда вы даже не знаете, какие члены или сколько членов может иметь тип. Так что это не только хорошая практика, но и иногда необходимо иметь список инициализаторов, который короче, чем количество членов, которые может иметь объект.

82
ответ дан 24 November 2019 в 13:50
поделиться

This can be easily fixed for GCC in C++ programs by initializing the structure as

STARTUPINFO startupInfo = STARTUPINFO();
  • just did exactly this a few days ago
17
ответ дан 24 November 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: