关键字:变量的限定符
一:限定符
1.1 const:限定符,标记变量为只读
声明方式:
const int Months=12; //Months为只读变量,可以读取,但是不能更改,赋值
1.2 volatile :可以改变该变量的值。通常被用于硬件地址以及在其他程序或同时运行的线程中共享数据。
声明方式:
volatile int locl; //locl是一个易变的位置
volatile int *ploc; //*ploc是一个指向易变的的位置的指针
二: 作用域:作用域分为块作用域、函数作用域、函数原型作用域或文件作用域。形参作用域也是在函数块内。C99允许变量可以定义在块中的任意位置。
2.1 块作用域:从变量定义块的起始到块的结束,C99扩展了块的内容,包含了for、while、do while和 if 语句。
2.2 函数作用域:
2.3 函数原型作用域: 用域函数原型中的形参名。
2.4 文件作用域:(全局变量)定义在函数体的外部,对于整个.C文件都可以引用。文件作用域仅限于一个翻译单元(一个源码文件和它的头文件)。
三 : 链接:C变量有三种链接属性:外部链接、内部链接、无链接。
3.1 无链接: 具有块作用域、函数作用域、或函数原型作用域的变量都是无链接变量
3.2 外部链接:具有文件作用域的变量可以是外部链接和内部链接
static int b=3; //作用域该源文件的内部 int a=5; //可以被其他源文件引用,一般添加extern 外部声明 int main(void) { }
四: 存储期。C对象有4种存储期:静态存储期、线程存储期、自动存储期、动态分配存储期。