Я пытаюсь передать локальную переменную (в func1) функции (func2) в другой файл, но func2 требует ее как глобальной переменной. Для того, чтобы объяснить вещи лучше, вот эти два файла:C: Передача переменных между файлами
file1.c:
#include <something.h>
extern void func2();
void func1(){
int a=0;
func2();
}
file2.c:
#include <something.h>
extern int a; //this will fail
void func2(){
printf("%d\n",a);
}
Переменная int a
не может быть объявлен как глобальный file1, так как func1 называется рекурсивным. Есть лучший способ сделать это?
Почему бы просто не дать двум переменным разные имена? Вызов двух разных вещей 'a' - это просто рецепт боли. –
Я пытаюсь передать вещи в func2 (который я не могу изменить), а func2 принимает только 'a' как глобальный var – zzxx53
Как это заставляет вас называть вашу локальную переменную' a'? Если вы вызываете свою переменную 'b', вы можете просто сделать' a = b; 'перед вызовом функции func2. –