存储类: 为变量提供了5种不同的存储类型,即存储类
按 ……以下的描述
存储时期
作用域
链接
static 的局部变量 : 活死人
为静态变量
存储类:
1、自动变量: 局部变量
2、寄存器变量: 用register 声明为 寄存器变量
3、具有代码块作用域的静态变量: static 局部变量
4、具有外部链接的静态变量: 外部变量(定义声明放所有函数之外) 用extern 声明
a.c b.c
int a =10; extern int a;
5、具有内部链接的静态变量: 在一个文件中使用 static int b
作用域
代码块作用域(函数体内):函数,非函数,局部变量(即函数体内{ …}),函数形参
函数原型作用域(声明,函数头):只关心参数类型,无关变量名
文件作用域(全局变量,函数外):全局变量——定义在函数外部
链接
外部链接: (默认)可在多文件程序中任何地方使用。
intern 、无static 的全局变量
内部链接: 可在一个文件中使用(文件私有)
static 全局变量
空链接: (代码块或函数原型)(局部变量)即无链接
存储时期
静态存储时期: static 或 全局变量(静态变量)
自动存储时期: 局部变量 进:分配内存
出:收回内存
函数:
外部的(默认) double gamma();
extern double delta();
静态的: static beta (); 当前文件可用
不希望被其他访问
内存分配: malloc() 和 free()
分配内存 malloc() 所需字节数 (连续内存)
需#include