6.46 Неполные типы перечислений
Вы можете определить 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-4.9.4/gcc/Incomplete-Enums.html