作用域和链接属性
关键字
static
extern
代码块作用域:
在{}中定义
范围:从定义开始到代码块结束
文件作用域:
在代码块外声明的标识符都具有文件作用域
范围:从声明位置开始到文件的结尾都可以访问
函数名具有文件作用域
原型作用域:
在函数原型中声明的参数名。可以不写参数名。
范围:()
函数作用域:
只适用于goto语句的标签,作用将goto语句的标签限制在同一个函数内部,放指出现同名标签
定义和声明:
定义:编译器申请空间并填充值
声明:通知编译器该变量被定义在其他地方,不需要再申请内存空间
int x = 4;//一定算定义
int x;//在函数外算声明,在函数内算声明+定义
链接属性:
编译:生成机器语言
链接:将机器语言和相关的lib链接到一起
链接属性:
文件作用域
external属性(默认):多个文件中声明的同名标识符表示同一个实体
internal属性:单个文件中声明的同名标识符表示同一个实体
extern int count;
其他作用域
none属性:声明的同名标识符被当作独立不同的实体
static关键字:
修改文件作用域的链接属性,将external属性改为internal属性,只能修改一次
static int count;