gpt4 book ai didi

c++ - 如何在 GCC 中将重复或相乘的字符串文字合并为一个

转载 作者:行者123 更新时间:2023-11-30 19:15:43 25 4
gpt4 key购买 nike

我得到了像这样的乘法字符串文字

char* a1 = "apalaxia";
char* t = "apalaxia";
char* zzzz = "apalaxia";

跨几个编译单元/.o 文件

我强烈需要将它们全部合并到一个运行时下地址(因此所有地址都有一个 char* 值)

如何在 GCC 中(在 C++ 模式下)执行此操作?我尝试过 -fmerge-constants和 -fmerge-all-constants 但 id 不合并

最佳答案

-fmerge-constants 和 -fmerge-all-constants 都不能保证字符串文字将被合并。两者都声明它们“尝试合并相同的常量”,但不保证它们会这样做。

此外,C++ 标准第 2.13.5 节指出“是否所有字符串文字都是不同的(即存储在不重叠的对象中)以及字符串文字的连续计算是否会产生相同或不同的对象是未指定的”

因此,不幸的是,我认为如果不明确声明每个位置的单个拷贝并将其导出到使用它的翻译单元,就没有办法获得有保证的单一位置。

关于c++ - 如何在 GCC 中将重复或相乘的字符串文字合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977606/

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