【发布时间】:2009-10-23 06:25:57
【问题描述】:
我的程序中有几个相同的字符串常量:
const char* Ok()
{
return "Ok";
}
int main()
{
const char* ok = "Ok";
}
是否保证它们具有相同的地址,即我可以编写以下代码吗?我听说 GNU C++ 优化字符串使它们具有相同的地址,我可以在我的程序中使用该功能吗?
int main()
{
const char* ok = "Ok";
if ( ok == Ok() ) // is it ok?
;
}
【问题讨论】:
-
除非绝对必须,否则不要依赖特定于编译器的功能。如果您想要“==”以获得更好的可读性 - 选择具有运算符重载的轻量级。
-
我建议为字符串“命名”,然后仅通过该名称引用它...请参阅下面的回复。
标签: c++ constants string-comparison