Global variable in c
本问题已经有最佳答案,请猛点这里访问。
如果我们在主函数前面的开头声明一个变量,而不给出extern关键字,那么它是一个静态全局变量(只能在该文件中访问)还是可以从其他文件访问它?例如:
1 2 3 4 5 6 | #include<stdio.h> int k; main() { } |
变量
外部定义和声明,默认初始化为零。
1 | int k; |
仅限外部声明,已定义并初始化某些where else
1 | extern int k; |
外部定义、初始化和声明
1 | int k = 2; |
1 | static int k; |
它告诉编译器变量k在文件scocpe中是可访问的,不能在外部访问。
1 | extern int k; |
它告诉链接器变量k链接到另一个文件中的变量k。
1 | int k; |
它是全局范围,不能在两个文件中声明两次。