我们在32位计算机上,c语言运行时可以大致分为内核,堆区,栈区,静态区(.data初始化过的全局变量和静态变量,.bss未初始化过的全局变量和静态变量),常量区,代码段。
堆区:由程序员分配(malloc)和释放(free),若程序员不释放,程序结束时由操作系统回收。 栈区:由编译器自动分配和释放,存放函数的参数值,局部变量等。
存储类型 auto,static,extern,register auto:修饰的局部变量,存储在栈区。 static:既可以修饰全局变量,又可以修饰局部变量,存放在静态区。 extern:修饰全局变量,存储在静态区。 register:修饰局部变量,存储在寄存器中。