我在c中研究了使用关键字extern的变量是外部引用的
例如:
的 prog1.c的
main(){
extern int a ;
a=2;
}
的 Prog2.c
int a=3;
这两个程序一起成功编译。这是否意味着Prog2.c中的变量a具有外部链接(外部引用)以及
但它是在dennis ritchie pg-195 section a4.1中写的,在所有块之外声明的对象,与函数定义在同一级别,总是静态的,我认为静态意味着内部联系,所以在以上程序?
答案 0 :(得分:2)
By default, an object or variable that is defined outside all blocks
has static duration and external linkage.
静态持续时间表示在程序启动时分配对象或变量,并在程序结束时解除分配。外部链接意味着变量的名称在声明变量的文件外部可见。相反,内部链接意味着名称在声明变量的文件之外不可见。
答案 1 :(得分:0)
如果您使用的是extern关键字,则可以使用该变量而不在同一文件中声明它。您需要在一个文件中声明该变量,并使用extern关键字在所有其他文件(模块)中使用它。
默认情况下,全局变量具有外部链接,除非通过添加static关键字进行更改。 This将有助于澄清事情。