当前位置:  开发笔记 > 编程语言 > 正文

什么是数据区?

如何解决《什么是数据区?》经验,为你挑选了2个好方法。

在C++中,存储类说明符static从数据区域分配内存."数据区"是什么意思?



1> Konrad Rudol..:

我不熟悉术语"数据区",但内存通常分为"代码段"和"数据段".代码驻留在前者中,后者中的数据.我认为这就是这里的含义.

传统上,两者之间没有区别.但是,许多现代操作系统可以禁止在数据段中执行代码(假设CPU支持这种区别).这有时会出现"NX标志"的口号,如"无执行",可以有效地防止某些恶意代码注入的情况.

/编辑:请注意,C++标准没有提到"数据区".



2> janm..:

区域名称因平台,编译器和链接器而异.

一般来说,有:

程序文本:可执行代码空间.

常量:不可执行的常量.

stack:堆栈.

bss:广泛用C/C++术语表示"静态"."符号启动块"

数据:未初始化的全局变量

heap:在运行时分配的存储.

在这种情况下,相关文档使用名称"数据区域"来表示传统上称为bss段的内容.

在C术语中,存储类说明符"静态"表示在程序的生命周期中存在的存储器,并且初始化为零或初始化器的值.在示例中:

static int s_value_one;
static int s_value_two = 123;

s_value_one的值保证为零,并且s_value_type的值在main()中的第一个语句处为123.如何实现这一点是一个实施问题.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有