Por que “typdef struct {struct S * s; } S; ”contendo um ponteiro para o mesmo tipo de compilação?
Eu estou tentandotypedef
a struct
que contém um ponteiro para outro do mesmo tip
That o que eu pensei que seria a melhor versão:
typedef struct Element
{
char value;
struct Element *next;
} Element;
Por que essa variante também está compilando + executando?:
typedef struct
{
char value;
struct Element *next;
} Element;
Para descrever o primeiro, eu diria: "Nomestruct Element
Element
agora" e o segundo como: "Tome este anônimostruct
e chame-oElement
"
Mas por que ainda posso declarar umstruct Element
(dentro da estrutura) no segundo caso?
(Trabalhando emGCC
eMSVC
)