Я пытаюсь typedef
a struct
, который содержит указатель на другой тип того же типа.
То, что я думал, будет лучшей версией:
typedef struct Element
{
char value;
struct Element *next;
} Element;
Почему этот вариант также компилируется + выполняется?:
typedef struct
{
char value;
struct Element *next;
} Element;
Чтобы описать первое, я бы сказал: "Name struct Element
Element
now", а второй как: "Возьмите этот анонимный struct
и назовите его Element
"
Но почему я могу объявить struct Element
(внутри структуры) во втором случае?
(Работает в GCC
и MSVC
)