一、链接属性是什么?
链接属性决定标识符的作用域
二、分类
1.external(外部)
属于external链接属性的标识符无论声明多少次,在不同源文件都表示一个实体
2.internal(外部)
属于internal链接属性的标识符在同一个源文件内的所有声明都表示一个实体,在不同源文件则都表示不同实体
3.none(外部)
属于none链接属性的标识符的多个声明都表示不同的实体,如函数形参和代码块内部声明的变量。
4.举例
代码如下(示例):
int main()
{
int i;
static int j;
int c(int m)
{
int n;
int p(int q);
}
}
在缺省的情况下i ,j,p(p为调用的函数名)为external链接属性。j加上关键字static后链接属性改为internal。而q,m,n链接属性为none。
不同链接属性的转变
int a; 在缺省得情况下为external链接属性,static int a;
static关键字使a为internal链接属性;
static只对缺省链接属性为external的声明才能有改变链接属性的效果
extern关键字用于一个标识符第一次声明时,具有指定该标识符为external链接属性的效果。但当它用于第二次或以后的声明时(若第一次已经指定链接属性),则并不会改变。