一、C语言编译后可执行文件的存储区域划分图解及举例
1、C语言编译后可执行文件的存储区域划分图解:
2、举例说明各种变量存储区域分布:
int g_iInt0 = 0; //全局初始化为零,.bss段
static int g_iInt1 = 20; //全局初始化非零,.data段
char *g_pcChar0; //全局未初始化,.bss段
const int g_iInt2 = 10; //全局const只读变量,.rodata段
volatile const int g_iInt3 = 10; //全局volatile初始化非零变量,.data段
int main(int argc, char* argv[]) //代码区,.text段,argc和argv是函数入参,栈区
{
int iInt4; //局部变量,栈区
char *pcChar1; //局部变量,栈区
static int iInt5 = 0; //静态局部变量初始化为零,.bss段
static int iInt6 = 10; //静态局部变量初始化非零,.data段
static int iInt7