我意识到,C标准允许将具有相同内容的字符串文本存储在不同的位置,至少这是我被告知的内容,也是我从SO上的其他帖子(例如或 one )中删除的内容。然而,我觉得奇怪的是,标准不要求这些文本的位置相等,因为它可以保证较小的可执行文件,并大大加快对字符串文本的相等检查,从而使它们成为O(1)操作,而不是O(n)。编译器是否进行了任何优化,从而使比较文字位置的节省变得无关紧要?除此之外,我还想就以下几个问题提出一些看法:
@hvd:我认为对于特定的附加优化来说,这是一个问题,而不是每个字符串文本都有一个实例的想法