如何解决字符串文字:它们去哪儿了??
一种常见的技术是将字符串文字放在“只读数据”部分中,该部分以只读方式映射到进程空间(这就是您无法更改它的原因)。
它确实因平台而异。例如,较简单的芯片架构可能不支持只读存储器段,因此数据段将是可写的。
与其试图找出使字符串文字可变的技巧(它将高度依赖于您的平台并且可能随着时间而改变),不如使用数组:
char foo[] = "...";
解决方法
我对分配/存储字符串文字的位置感兴趣。
我确实在这里找到了一个有趣的答案,说:
定义一个字符串内联实际上将数据嵌入程序本身并且不能更改(一些编译器通过一个聪明的技巧允许这样做,不要打扰)。
但是,它与 C++ 有关,更不用说它说不要打扰。
我很烦。=D
所以我的问题是我的字符串文字在哪里以及如何保存?为什么我不应该尝试改变它?实现是否因平台而异?有人愿意详细说明“聪明的把戏”吗?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。