链接属性
当组成一个程序的各个源文件被编译之后,所有的目标文件以及
那些从一个或多个函数库中引入的函数链接在一起,形成可执行
程序。然后,如果相同的标识符出现在多个不同的源⽂件中时,
它们表示同一个实体还是不同实体?标识符的链接属性决定如
何处理在不同的文件中出现的标识符。
链接属性一共有三种:
如果某个变量默认具有外部属性,那我们在变量之前加 1 个 static ,
这个变量的属性就变成内部属性了。
同样的对函数也是相同的。
如:
static int b; // 变量 b 变成当前源文件私有的。
static int c( int d); // 函数 c 不能被其他源文件调示。
static 只对默认属性为外部属性的声明才有改变链接属性的效果。
当组成一个程序的各个源文件被编译之后,所有的目标文件以及
那些从一个或多个函数库中引入的函数链接在一起,形成可执行
程序。然后,如果相同的标识符出现在多个不同的源⽂件中时,
它们表示同一个实体还是不同实体?标识符的链接属性决定如
何处理在不同的文件中出现的标识符。
链接属性一共有三种:
external | 外部属性 | 标示符不论声明多少次,位于几个源文件都表示同一个实 体。 |
internal | 内部属性 | 标示符在同一个源文件内的所有声明都指向同一个实体。 |
none | 无属性 | 标示符的多个声明被当做不同的实体。 |
如果某个变量默认具有外部属性,那我们在变量之前加 1 个 static ,
这个变量的属性就变成内部属性了。
同样的对函数也是相同的。
如:
static int b; // 变量 b 变成当前源文件私有的。
static int c( int d); // 函数 c 不能被其他源文件调示。
static 只对默认属性为外部属性的声明才有改变链接属性的效果。