您的位置:首页 > 其它

如何区分数据和指令

2017-10-10 11:06 387 查看
程序分为数据和指令,以一段程序为例:

int  g_date1 = 10;
int  g_date2 = 0;
int  g_date3;

static  int  g_date4 = 10;
static  int  g_date5 = 0;
static  int  g_date6 ;

int main()
{
int  a = 10;
int  b = 0;
int  c;

static  int  d = 10;
static  int  e = 0;
static  int  f ;

return 0;
}


该段代码中包括全局变量和局部变量。其中全局变量又包括普通全局变量和静态全局变量,普通全局变量为:g_date1、g_date2、g_date3,静态全局变量为:g_date4、g_date5、g_date6。同样的,局部变量也分为普通局部变量和静态局部变量,普通局部变量为:a、b、c,静态局部变量为d、e、f。有些变量是初始化的,有些则没有初始化,哪些是数据,又有哪些是指令?
数据包括全局变量(包括就普通和静态两种)和静态局部变量,而指令则为普通局部变量。对可执行文件而言,存储时,初始化且值不为0的数据放在.date区(即数据段),未初始化(包括初始化为0)的数据放在.bss区,指令放在.text区。特殊的,没有被初始化的普通全局变量在编译文件中存放在.comment区,在可执行文件中存放在.bss区。
程序运行,即进程启动之后,.bss会被清零。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐