6.49 Неполные типы перечисления ¶
Вы можете определить enum тег, не указывая его возможные значения. Это приводит к неполному типу, аналогично тому, что вы получаете, если напишете struct foo без описания элементов. Позднее объявление, которое указывает возможные значения, завершает тип.
Вы не можете выделять переменные или память, используя этот тип, пока он неполный. Однако вы можете работать с указателями на этот тип.
Это расширение может быть не очень полезным, но оно делает обработку enum более согласованной со способом обработки struct и union.
Это расширение не поддерживается GNU C++.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Incomplete-Enums.html