我得到了类似的字符串文字
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节指出:“是否所有字符串文字都是唯一的(即存储在不重叠的对象中),以及字符串字面量的连续求值是否得出相同或不同的对象”。
因此,不幸的是,我认为没有一种方法可以得到保证的单一位置,而无需明确声明每个位置的单个副本并将其导出到使用它的翻译单元。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句