C:在文件之间传递变量

C:在文件之间传递变量,c,scope,global,C,Scope,Global,我试图将局部变量(在func1中)传递给另一个文件中的函数(func2),但func2要求将其作为全局变量。为了更好地解释,以下是两个文件: 文件1.c: #include <something.h> extern void func2(); void func1(){ int a=0; func2(); } #包括 extern void func2(); void func1(){ int a=0; func2(); } 文件2.c: #include <

我试图将局部变量(在func1中)传递给另一个文件中的函数(func2),但func2要求将其作为全局变量。为了更好地解释,以下是两个文件:

文件1.c:

#include <something.h>
extern void func2();
void func1(){
    int a=0;
    func2();
}
#包括
extern void func2();
void func1(){
int a=0;
func2();
}
文件2.c:

#include <something.h>
extern int a;  //this will fail
void func2(){
    printf("%d\n",a);
}
#包括
外部内部a//这将失败
void func2(){
printf(“%d\n”,a);
}
变量
int a
不能在file1中声明为全局变量,因为func1是递归调用的。有更好的方法吗

在文件1.c中:

#include <something.h>
#include "file1.h"

int a;

void func1(){
    a = 0;
}
在文件2.c中:

#include <something.h>
#include "file1.h"

void func2(){
    printf("%d\n",a);
}
#包括
#包括“file1.h”
void func2(){
printf(“%d\n”,a);
}
因此: