Я пытаюсь 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)