当选择增长文本段或数据段时,哪组标准可以决定选择?
我不知道给定不同配置(动态/静态链接、PIC、非 PIC 等)时编译时或执行时的差异和影响。所以我要问的是所涉及的权衡是什么。
更具体:它通过使用静态字符数组在编译时增长,基本上使其成为常量或非常量,而常量显然决定它是否以文本形式结束。这是为什么?
最佳答案
代码段是只读的、按需加载的(可以直接从磁盘分页)并且可以共享。
相反,数据段是可写的(由分页文件或 RAM 支持),因此不共享。
因此,如果您可以选择增长其中任何一个,请选择较小的数据段,因为数据段中相同数量的空间通常会消耗更多资源,即使您的程序不会同时运行多次。
将所有可以标记为 const
的内容还有一个额外的好处:
未能尊重数据不应更改的事实更有可能被编译器捕获,甚至稍后被运行时(内存保护)捕获,而不是默默地破坏您的状态。
关于c - 增长文本段与增长数据段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27948375/