O que é 'declaração direta' e a diferença entre 'typedef struct X' e 'struct X'?
Eu sou um iniciante em programação C e sei a diferença entre declaração de tipo de struct e typedef struct declaration. Me deparei para saber uma resposta dizendo que se definirmos uma estrutura como:
typedef struct
{
some members;
}struct_name;
Então será como fornecer um alias para uma estrutura anônima (já que não está tendo um nome de tag). Portanto, não pode ser usado para declaração antecipada. Não sei o que significa "declaração antecipada".
Além disso, queria saber isso para o seguinte código:
typedef struct NAME
{
some members;
}struct_alias;
Existe alguma diferença entreNAME
estruct_alias
? Ou ambos são iguais como struct_alias é um alias de struct NAME?
Além disso, podemos declarar uma variável do tipostruct NAME
como estes:
struct_alias variable1;
e / ou como:
struct NAME variable2;
ou como:
NAME variable3;