Да, это то, что вы должны сделать: поместите typedef в заголовок вместе со структурой.Затем включите заголовок (через #include) во все файлы, которые используют структуру.Заголовки должны содержать объявления, в том числе и структуры.Декларации typedef в паре с этими структурами естественно вписываются туда, и часто от них ожидают, что кто-то смотрит на код.Если вы собираетесь использовать исключительно typedef, вы можете рассмотреть следующий синтаксис, который полностью исключает использование ключевого слова struct
:
typedef struct {
data_object *data;
struct _temp_list_node *prev;
struct _temp_list_node *next;
} list_node;
., но многие люди это делают, и это дополнительно абстрагирует то, что находится внутри list_node, что вы, возможно, захотите сделать для правильной инкапсуляции.
Как отдельное примечание, поскольку вы будете включать этот заголовок в несколько файлов, не забудьте использовать включить охрану .