У вас могут быть проблемы, потому что у вас еще нет веской причины делиться вещами.Хорошая причина поможет вам определить, какие части принадлежат друг другу, а какие - отдельным.Так что начните с более простого подхода.
Разделите программу на три файла: main.c, который содержит main (), node.h, заголовок, обеспечивающий общие объявления для всей программы и, следовательно, понятный для компилятора и узла.c, функции, которые управляют структурой NODE.
Поместите typedef ... NODE;
и все объявления функций, которые манипулируют NODE, в один заголовочный файл node.h.Таким образом, вы можете объединить существующие заголовочные файлы в один и назвать его node.h.
Как рекомендует Joop Eggen, поместите #ifndef _NODE_H_ ... #endif
вокруг содержимого node.h, чтобы защитить его от случайного включения # дважды.
Проверьте правильность этого файла с помощью минимального файла main.c, содержащего:
#include "node.h"
int main() { return 0; }
, и скомпилируйте его.Это не должно давать никаких ошибок компиляции.Если он содержит ошибки, ошибка находится в файле заголовка.
Поместите функции, которые управляют NODE, в файл с именем node.c, который первоначально будет:
#include "node.h"
compile and linkчто с main.c (gcc main.c node.c), и не должно быть ошибок.
Сборка программы происходит поэтапно, добавляя код в файл main.c, файл node.c,и добавить объявления функций в файле node.c в node.h.Добавьте небольшие объемы кода и часто компилируйте (с включенными предупреждениями, например, gcc -Wall main.c node.c) и тестируйте, чтобы убедиться, что он выполняет то, что вы ожидаете.
Программа в конечном итоге будет завершена.