C语言里面"具有外部链接的静态变量"这里的"链接"是什么意思?

2025-12-16 21:26:28
推荐回答(3个)
回答1:

首先从静态变量说起. C语言里面静态变量有三种: 分别是外部链接性,内部链接性和无链接性.
声明外部链接的变量的方法是在代码块外面声明它. 此变量是全局变量,多文件中亦可用.
声明内部链接的变量的方法是在代码块外面声明它并加上static限定符. 此变量是全局变量,但仅在本文件中可用.
声明无链接的变量的方法是在代码块里面声明它并加上static限定符. 此变量是局部变量,但仅在本代码块中可用.
例:
#include<...........>
int global=1; //声明外部链接的变量
static int global2 //声明内部链接的变量
int func()
{
int global=5; //声明的内部变量和全局变量重名,调用时将会隐藏全局的global;
cout<//如何引用外面的变量呢???
cout<<::global; //可用作用域解析符(::)来说明你要输出的外面的全局变量.
static int global3; //声明无链接的变量
}
int main()
{
extern int alobal; //在本文件中此句可选.此句的意思为你需要引用外部的变量global;
global=8; //直接引用全局变量.
}

望采纳!!!!

回答2:

"具有外部链接的静态变量"全称应该是"具有外部链接,静态存储周期的变量”。
这里的外部链接是指编译器会将这个标识符交给链接器,由链接器解析它们,并且把其他翻译单元和链接库中出现的和它们相同的标识符链接起来

回答3:

就是被其它c文件里面引用了