2018/12/1星期六11:28
**链接属性**
a)external(外部的)
-多个文件中声明的同名标识符表示同一个实体。
//只有具备文件作用域才可以拥有external或internal属性,也就是说可以用于跨文件访问。
b)internal(内部的)
-单个文件中声明的同名标识符表示同一个实体。
c)none(无)
-声明的同名标识符被当做独立不同的实体。
*有关extern,external说明的全局变量为外部变量,并且external只能修饰全局变量,格式:external 类型 变量名。
例如:
int main(void)
{
fuc();
count++; //由于编译器是从上往下看的
此处出现了未定义的count,此时编译器则会报错,因此我们
需要在count++之前,加上extern int count;用于告诉编译器
先不要报错,继续往下看,这个count在某个地方有定义。
}
int count;
void func{
count++;
return 0;
}
STATIC的作用:1)使用static可以将external转为internal属性,(当我们想保护一个标识符不被改变或访问的时候,就可以用static,使得某个标识符只有在这个文件当中才可以被访问),用于限制函数在某个文件中被调用。
2)当用作静态变量的时候,表示该标识符只被初始化一次,并且与局部变量不同的是,它的内存空间仍然存在不被释放,(例如求和的时候先初始化sum=0,然后继续累加)。