如果文件A通过extern调用了文件B的函数fun,比如:
A:extern int fun();
B: int fun() {cout<<x<<endl;}
而变量x又是文件B的全局变量,比如:
B: int x=10;
这个时候尝试调用该函数:
A: fun();
会输出结果:10
问题是,A引入的只是fun()函数,该函数在A环境下运行的时候,从哪获知x=10啊?
如果全局变量x的定义放到A里面(B里面去掉),又会是什么情况?
如果文件A通过extern调用了文件B的函数fun,比如:
A:extern int fun();
B: int fun() {cout<<x<<endl;}
而变量x又是文件B的全局变量,比如:
B: int x=10;
这个时候尝试调用该函数:
A: fun();
会输出结果:10
问题是,A引入的只是fun()函数,该函数在A环境下运行的时候,从哪获知x=10啊?
如果全局变量x的定义放到A里面(B里面去掉),又会是什么情况?
A调用fun()函数,不需要知道fun()函数的依赖,fun()函数会找自己的依赖。
如果全局变量定义到A里面,fun()函数找不到自己的依赖,肯能会报错吧。