В С
struct node {
int item;
int occurrency;
};
- это тег, и сам по себе он не представляет тип.
Вот почему вы не можете сделать
node n;
Вы должны сделать
struct node n;
Итак, чтобы дать ему «имя типа», многие программисты на С используют typedef
typedef struct node {
int item;
int occurrency;
} node;
Таким образом, вы можете сделать
node n;
Вместо
struct node n;
Кроме того, вы можете опустить тег и сделать следующее
typedef struct {
int item;
int occurrency;
} node;
Однако в C ++ все это меняется, синтаксис typedef
больше не нужен. В C ++ классы и структуры по умолчанию считаются пользовательскими типами, поэтому вы можете просто использовать следующее
struct node {
int item;
int occurrency;
};
И объявить узлы, как это
node n;