我需要一个函数来返回一个只能以只读方式访问的字符串.字符串内容在编译时是已知的,因此无论如何我将使用字符串文字.
我可以返回类似的东西std::string
:
std::string myFunction()
{
return "string";
}
Run Code Online (Sandbox Code Playgroud)
或返回const char*
:
const char* myFunction()
{
return "string";
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,第二种替代方案是安全可移植的吗
Phi*_*ter 10
是! 但要注意这个潜在的问题:
char * myFunc() {
return "Constant string?";
}
Run Code Online (Sandbox Code Playgroud)
是的,您可以将字符串文字转换为非常量 char *
!这将使您以后通过尝试修改其内容来打破世界char *
.由于遗留原因,此"特征"存在 - 字符串文字比const更早,最初char *
在C中定义.
谢天谢地,即使在默认模式下,g ++也会对此发出令人讨厌的警告.我不知道VC++是否会急切地发出警告.
归档时间: |
|
查看次数: |
1910 次 |
最近记录: |