当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序:该变量是一个已在外部定义了的全局变量,已经分配了存储单元,不需再为它另外开辟存储单元。这时其作用域从extern说明处起,延伸到该函数末尾。
就是说在另一个文件中使用这个关键字,这个已经定义过的全局变量在这个文件中的作用域就是从关键字的位置开始
例如
// 文件1
int addNumbers(int a, int b) {
return a + b;
}
// 文件2
#include <stdio.h>
// 声明自定义函数
extern int addNumbers(int a, int b);
void printResult(int result);
int main() {
int result = addNumbers(3, 5); // 调用自定义函数
printResult(result); // 调用自定义函数打印结果
return 0;
}
void printResult(int result) {
printf("Result: %d\n", result);
}
如果将extern int addNumbers(int a, int b);放在自定义函数printResult后面进行声明,产生的结果就会跟上面正确的代码段不一样对吗