C变量有3种链接属性:外部链接、内部链接或无链接。具有块作用域、函数作用域或函数原型作用域的变量都是无链接变量。这意味着这些变量属于定义它们的块、函数或原型私有。具有文件作用域的变量可以是外部链接或内部链接。外部链接变量可以在多文件程序中使用,内部链接变量只能在一个翻译单元中使用。
int giants = 5; // 文件作用域,外部链接 (所有翻译单元可访问该变量)
static int dodgers = 3; // 文件作用域,内部链接 (当前文件所在的翻译单元可以访问该变量)
该文件和同一程序的其他文件都可以使用变量giants。而变量dodgers属文件私有,该文件中的任意函数都可以使用它。