发布于 2015-09-11 23:30:27
好的,传统的文字部分是常量(例如static const char* const = "hello world";),因为它们位于const_seg区域,如果它们位于data_seg或bss_seg中,它们可能是可变的(尽管由于明显的原因,不能就地调整大小)。
另一个原因(同样)可能是在编译时预初始化复杂的数据结构,但允许在运行时对其进行操作,例如,大量的已知值哈希表,尽管这需要编译器的支持。
发布于 2015-09-11 23:40:28
改变段主要用于嵌入式软件,将一些数据映射到不同的物理存储区域。例如,您可能希望将一些变量保存在EEPROM中,在这种情况下,您可以在链接时定义一个要映射到EEPROM地址的特殊段。
对于WIN32可执行文件,它的用处有限。您可能希望使用它在进程的各个实例之间共享一些内存,但是如果试图篡改内存映射,您最好知道自己在做什么。
https://stackoverflow.com/questions/32533447
复制相似问题