-
局部变量 auto自动变量,
- 函数内有效
- 没有赋初值,内容为随机
-
静态(static)局部变量
- 函数内有效
- static局部变量生命周期和程序运行周期一样,只初始化一次,可以赋值多次
- 如未赋值,系统自动赋值,数值型为0;字符为空字符。
-
全局变量
- 函数外定义,若其他文件中的函数调用此变量,须用extern声明
- 全局变量的声明周期和程序运行周期一样
- 不同文件的全局变量不可重名。
-
静态(static)全局变量
- 函数外定义,作用范围被限制在所定义的文件中
- 不同文件静态全局变量可以重名,作用域不冲突
- static全局变量的生命周期和程序运行周期一样,static全局变量的值只初始化一次。
-
extern全局变量声明
extern int a 声明一个变量, -
全局函数和静态函数
在C语言中函数默认都是全局的,使用关键字static可以将函数声明为静态,函数定义为static就意味着这个函数只能在定义这个函数的文件中使用,在其他文件中不能调用,即使在其他文件中声明这个函数都没用。
内存分区, 预处理,编译,汇编,链接,生成一个二进制可执行程序。
- 代码区
- 全局初始化数据局/静态数据区(data段)
- 未初始化数据区