鸟语天空
链接
post by:追风剑情 2020-1-7 20:24

      C变量有3种链接属性:外部链接内部链接无链接。具有块作用域、函数作用域或函数原型作用域的变量都是无链接变量。这意味着这些变量属于定义它们的块、函数或原型私有。具有文件作用域的变量可以是外部链接或内部链接。外部链接变量可以在多文件程序中使用,内部链接变量只能在一个翻译单元中使用。

注意 正式和非正式术语
C标准用 ”内部链接的文件作用域“ 描述仅限于一个翻译单元(即一个源代码文件和它所包含的头文件)的作用域,用 “外部链接的文件作用域” 描述可延伸至其他翻译单元的作用域。但是,对程序员而言这些术语太长了。一些程序员把 “内部链接的文件作用域” 简称为 “文件作用域”,把 “外部链接的文件作用域” 简称为 “全局作用域” 或 “程序作用域”。

int giants = 5; // 文件作用域,外部链接 (所有翻译单元可访问该变量)
static int dodgers = 3; // 文件作用域,内部链接 (当前文件所在的翻译单元可以访问该变量)
该文件和同一程序的其他文件都可以使用变量giants。而变量dodgers属文件私有,该文件中的任意函数都可以使用它。

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容