我是 发现我不能用 作为g ++ 4.7的有效标识符,即使-fextended-identifiers启用了该选项:
int main(int argc, const char* argv[])
{
const char* = "I'm very happy";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
main.cpp:3:3:错误:stogram'\ 360'在程序
main.cpp中:3:3:错误:stray'\ 237'在程序
main.cpp中:3:3:错误:stray'\'230'in程序
main.cpp:3:3:错误:在程序中迷路'\ 203'
经过一些谷歌搜索后,我发现标识符中尚不支持UTF-8字符,但通用字符名称应该有效.所以我将我的源码转换为:
int main(int argc, const char* argv[])
{
const char* \U0001F603 = "I'm very happy";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
main.cpp:3:15:错误:通用字符\ U0001F603在标识符中无效
所以显然不是有效的标识符字符.但是,该标准特别允许来自10000-1FFFD附件E.1 范围内的字符,并且不允许它作为E.2中的初始字符.我的下一个努力是看看是否有任何其他允许的unicode字符工作 - 但我没有尝试过.甚至不是重要的PILE OF POO()角色.
那么,为了有意义和描述性的变量名称,给出了什么?请问-fextended-identifiers这样做,因为它会公布或不?它是否仅在最新版本中得到支持?其他编译器有什么样的支持?
我们可以使用特殊字符在c ++/c中定义变量,例如;
双ε,μ,β,κ;
如果是,那怎么能实现呢?