queueNodeT - имя типа, который пытается создать команда typedef.
Альтернативный способ указать это:
struct queueNodeTag {
...
};
typedef struct queueNodeTag queueNodeT;
В C (по сравнению с C++), "структура queueNodeTag" просто определяет-структуру под названием "queueNodeTag". В C++ [вы должны попасть туда], это было бы также определить тип с именем «queueNodeTag»
При создании переменной указатель на структуру, он немного короче использовать:
queueNodeT *my_pointer;
чем:
struct queueNodeTag *my_pointer;
Конечный «Т» - это просто соглашение о кодировании, чтобы обозначить, что это имя типа, а не переменная. Вы можете использовать других.Шахта:
struct mystructname {
...
};
typedef struct mystructname mystructname_t;
typedef mystructname_t *mystructname_p;
Использование mystructname_p, вы можете изменить:
struct mystructname *my_pointer;
mystructname_t *my_pointer;
в:
mystructname_p my_pointer;
The "_t" является довольно распространенным явлением. «_p» - это мое соглашение, но, я считаю, что другие соглашения определяют указатели на типы как «p < Mytype>», например «pMystructName». Я предпочитаю использовать суффикс для этой [и обозначения «змеиного случая», а не обозначения «верблюжьего горба» в вашем примере].
Это для 'typedef'. Он объединяет декларацию 'struct' и имя typedef для структуры. –
Объявление 'typedef' объявляет псевдоним для типа. В этом случае 'queueElementT' объявляется псевдонимом для' char'. Кроме того, 'queueNodeT' объявляется псевдонимом для' struct queueNodeTag', а 'struct queueNodeTag', кроме того, определяется как' struct' с указанными членами. –