gpt4 book ai didi

c++ - C++ 标准是否保证字符串文字原封不动地存储在程序二进制文件中?

转载 作者:可可西里 更新时间:2023-11-01 18:17:17 27 4
gpt4 key购买 nike

例如,如果你有一个程序

int main()
{
const char* str = "1111111111111111111111111111111111111111111";
printf("%s", str);

return 0;
}

然后你编译它,如果你在生成的二进制文件中搜索“111111111111111111111111111111111111111111”(忽略编码等问题),你是否保证找到它,或者是否允许编译器生成代码,例如,分配堆内存,使用循环用'1'填充它,然后修复对该字符串文字的所有引用以指向堆内存? (然后确保它在正确的时间被释放,等等)

我怀疑是否有任何实际执行此操作的实现...但如果这样做是否符合标准?

最佳答案

C++ 没有任何“二进制程序”的概念,所以这个问题真的没有意义。

保证是通过递增和取消引用指针 str 来获取字符串中的所有字符,即当程序运行时,您的字符串连续存储在内存中。

关于c++ - C++ 标准是否保证字符串文字原封不动地存储在程序二进制文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19303676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com