定义变量很容易,但要时刻控制它却很难。这句话说的就是变量的声明。
声明在C编程中有着很高的地位。通过声明变量和函数,可以在一下两方面为编译器提供重要的信息:
1.检查程序潜在的错误
2.把程序翻译成目标代码
- 声明的语法
声明为编译器提供有关标识符含义的信息:
int i; //告诉编译器 i 表示当前作用域内数据类型为 int 的变量
float f(float);
//表示 f 是一个返回值类型float的函数,并且此函数带有一个实际参数,参数类型为float
一般地,声明有以下形式:
[声明] 声明说明符 声明符;
声明说明符分三大类:
1. 存储类型 ——-> auto / static / extern / register
2. 类型限定符 ——-> (C89) const / volatile / (C99) restrict
3. 类型说明符 ——-> 关键字 void int char short …struct / union / enum / typedef 创建的类型
4. (C99)函数说明符 inline
存储类型 声明符
static float x,y,z;
类型说明符
类型限定符 类型说明符
extern const unsigned ling int a[10];
- 存储类型
C程序中的每个变量都具有一下三个性质:
- 存储期限 —— 决定了变量预留和内存被释放的时间。
具有auto自动存储期限的变量在所属快被执行时获得内存单元,并在终止时释放,从而导致变量失去值。
具有static静态存储期限的变量在程序运行期间占有同一个存储单元,也就允许变量无限期的保留值。 - 作用域 ——块作用域 / 文件作用域
- 链接 ——变量的链接确定了程序不同地方可以共享这个变量的范围。
外部链接—-变量可以被程序中的几个或全部文件共享
内部链接—-变量只能在本文件中共享
无链接 —-变量不能被共享