从C ++ 14开始,由于n3781(它本身不能回答这个问题),我们可以编写如下代码:
const int x = 1'234; // one thousand two hundred and thirty four
目的是改进这样的代码:
const int y = 100000000;
并使其更具可读性。
下划线(_
)字符已经由用户定义的文本采取了C ++ 11,和逗号(,
)的本地化问题-许多欧洲国家令人困惑†以此作为小数点分隔符-和冲突与逗号操作,虽然我做的想知道允许使用可能破坏了哪些实际代码1,234,567
。
无论如何,更好的解决方案似乎是空格字符:
const int z = 1 000 000;
这些相邻的数字文字标记可以和字符串文字一样由预处理器连接:
const char x[5] = "a" "bc" "d";
相反,我们得到撇号('
),我所知道的任何书写系统都没有使用它作为数字分隔符。
是否存在选择撇号而不是简单空格的原因?
†之所以感到莫名其妙,是因为所有这些语言在文本内都保持着逗号的概念,即“分开”原本原子的句子,并用句号“终结”该句子-至少对我而言,这与逗号“分解”数字的整数部分,并用句号“终止”数字以准备小数输入。