Если я создал структуру:и ЬурейеЕ Структуры в С
struct student {
int id;
char name [20];
student * next};
Что такое смысл:
typedef struct student student?
Что делает student * next
?
Спасибо!
Если я создал структуру:и ЬурейеЕ Структуры в С
struct student {
int id;
char name [20];
student * next};
Что такое смысл:
typedef struct student student?
Что делает student * next
?
Спасибо!
A typedef
создает новое название. Таким образом, они полностью эквивалентны:
student *next;
struct student *next;
В вашем примере структура и typedef имеют одинаковое имя. Но это может быть так:
struct something {
/* ... */
};
typedef struct something student;
Объявление typedef похоже на тип, который он вводит.
В качестве боковой стороны примечание, things are different in C++.
В C при использовании структур вы должны использовать ключевое слово struct
. Набрав typedef struct student student
, вы можете сказать struct student
, просто говоря student
.
С названной структурой наиболее часто используется ключевое слово struct
для создания экземпляров структуры и ссылки на тип структуры вообще.
typedef
позволяет практически создать псевдоним для student
вместо того, чтобы использовать struct student
постоянно, таким образом, на самом деле делает его вести себя как встроенный тип.
typedef struct student student;
Это создать псевдоним для struct student
с именем student
.
Структурные теги и имена типов живут в двух разных пространствах имен в C (не верно в C++), поэтому разрешено использовать одно и то же имя для псевдонима и для тега.
Рассматривали ли вы [вводную книгу] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)? –