Привет!!! 1)У меня есть главный модуль в котором объявлена переменная. И есть ещё один модель. В главном объявлена переменная. ОНа также зедействована в в другом моделу. При компиляции - ругается что перемменная в этом доп. модуле не объявлена. Когда я делаю инклюд главного модуля в дочерний, подключая и компилю, выскакивает такая ошибка. Как с этим бороться? 2) Как передать в функции имя функции, которую я хочу использовать. Приведите пример, плиз. Спасибо.
ajak 1) у тебя файл 1 включает файл 2, который включает файл 1, который включает файл 2,... Просто объяви переменную как extern и не надо никаких файлов включать. 2) передать "имя функции" - просто int foo(char *function_name); Но я думаю ты очепятался и хотел сказать "как передать указатель на функцию", если да, то так: Код (Text): int foo(int (*bar)(void)) { return bar(); } int eggs(void); int qux(void) { return foo(eggs); } з.ы. советую почитать теорию (напр. K&R), а потом переходить к практике. з.ы. по поводу 2): в Си ф-ции не first-class объекты, поэтому можно писать "int foo(int bar(void))", вызывать можно "int x = (*bar)()", передавать можно как eggs так и &eggs итп. - дело вкуса, результат один.
ajak 1) Напиши примерный код хотя бы, свой или упрощенный, чтобы можно было понять в чем проблема Скорее всего это связано с extern, но нужно увидеть код и хидеры: что где определено, объявлено. А ошибка видать не та - тут о другом тебе компилятор говорит 2) Это уже объяснил Ra!N
и так все понятно, файлы рекурсивно включают друг друга. Компиолятор загнулся на 363 уровне. Память кончилась и появился второй еррор, который остановил компиляцию.