История изменений
Исправление alysnix, (текущая версия) :
дело не в «защите препроцессором», а в том, что взаимный импорт говорит о том, что файл искусственно разорван на две части.
неохота вникать в ваши проблемы, с чего бы оно так вам надо,… но даже если оно так надо - просто имейте два хидера, но один общий файл реализации.
в си(и плюсах) такое вполне нормально. зачем вам два си файла-то со структурами этими?
но главная ваша ошибко, что struct_list(без параметров) определен в файле где определяется структура. если его и определять там, то ему должно подставлять внешний список, то есть это должно быть функцией дампа произвольного списка, а не конкретного.
короче там функция должна быть
struct_list( data_struct* flist, uint flen)
которую вы будете вызывать с неким конкретным списком и его длиной, и у вас все развяжется сразу.
короче ваша главная ошибка, что вы в некий модуль нижнего уровня загнали функцию, чья реализация знает о верхних уровнях. а это неверно. и вообще это лапша в чистом виде.
Исходная версия alysnix, :
дело не в «защите препроцессором», а в том, что взаимный импорт говорит о том, что файл искусственно разорван на две части.
неохота вникать в ваши проблемы, с чего бы оно так вам надо,… но даже если оно так надо - просто имейте два хидера, но один общий файл реализации.
в си(и плюсах) такое вполне нормально. зачем вам два си файла-то со структурами этими?
но главная ваша ошибко, что struct_list(без параметров) определен в файле где определяется структура. если его и определять там, то ему должно подставлять внешний список, то есть это должно быть функцией дампа произвольного списка, а не конкретного.
короче там функция должна быть
struct_list( data_struct* flist, uint flen)
которую вы будете вызывать с неким конкретным списком и его длиной, и у вас все развяжется сразу.