下列存储标识符中,( )的可见性与存在性不一致
一个 C 程序( *.EXE )由若干个 C 文件( *.C )组成,一个( *.C )文件由若干个 C 函数组成。函数内、外均可(根据需要)定义或声明变量。
【 按作用域划分 】 内部变量 、外部变量
内部变量 :在函数内定义变量称为内部变量(局部);
外部变量: 在函数外定义变量称为外部变量(全局);
二者区别 :定义出现的位置。
【 按存储类型划分 】 auto、static/register(动态、静态/寄存器变量)
变量 定义 一般 格式 : [ 存储类 型 ] 数据类型 变量表
auto :动态:( [ 存储类 型 ] 缺省时,系统默认为动态;)
位置:动态区
特点: 程序运行时动态分配,每次调用时都重新赋初值,调用不赋初值时,其值不确定。
static :静态:
位置:静态区
特点: 程序编译时静态分配,每次调用时不再重新赋初值,保留最后一次调用的值。
二者区别 :存储位置不同,
register :寄存器:
位置:在CPU内;
特点:速度快;
补充说明: 一般不用认为进行 存储类 型声明,系统编译时,根据需要自动声明 register 类型)
二、Static:用于变量和函数时的不同意义
1. Static:用于变量时,共性是:静态存储
(1) 用于外部变量:代表是本*.C文件内私有变量,且静态存储
其他*.C(即使用extern声明也)不能调用
(2)用于内部变量:代表是本函数内私有变量,且静态存储
2. Static:用于函数时,代表是本*。C文件私有函数,其他*。C(即使用extern声明也)不能调用
Static:静态的:用于外部变量或函数时,代表作用域;用于内部变量时,代表生存周期