Я новичок в программировании на C и знаю разницу между объявлением типа struct
и объявлением структуры typedef
. Я наткнулся на ответ, в котором говорится, что если мы определим struct
наподобие:
typedef struct {
some members;
} struct_name;
Тогда это будет похоже на предоставление псевдонима анонимной структуре (так как у нее нет имени тега). Так что это не может быть использовано для предварительного объявления. Я не знаю, что означает предварительная декларация.
Кроме того, я хотел знать, что для следующего кода:
typedef struct NAME {
some members;
} struct_alias;
Есть ли разница между NAME
и struct_alias
? Или оба равны, поскольку struct_alias
является псевдонимом struct NAME?
Кроме того, мы можем объявить переменную типа struct NAME
следующим образом:
struct_alias variable1;
и/или как:
struct NAME variable2;
или как:
NAME variable3;