标签:
C 语言中的链接属性共有三种 :external(外部的) internal (内部的) 和 none(无) 。
没有链接属性的标识符一般总被当做单独的个体,而属于internal的链接属性的标识符在同一个源文件的所有声明都被指做同一个实体,位于不同源文件的多个声明则分别属于不同实体。属于external的属性标识符不论被声明多少次,在多少个源文件中都表示同一个实体。
如果某个声明正常情况下具有external属性,那么在它前如果加上static 关键字,那么这个属性就会由external变为internal, 例如:static int a; 那么a变量就将属于 这个源文件独有,也可以将某个函数定义为static ,那么这个函数就只能被自己所处的源文件调用,可以防止被其他源文件调用~ 另外 static 只对缺省external属性的声明才有改变的作用; extern 可以为一个标识符制定external属性,这样可以访问其他任何地方定义的实体。
具有external属性的实体也叫全局(global)实体,所有函数均可以访问它,只要定义变量并非声明于代码块或函数定义内部,它将在缺省情况下属性为external,如果一个变量声明在代码块内部在它前面添加extern 将使他变为全局变量 ,external属性实体总是静态存储类型。
标签:
原文地址:http://www.cnblogs.com/liul0703/p/4802332.html