为什么我可以在 C++ 中用撇号分隔数字,但不能用 C 分隔数字
Why can I separate digits with an apostrophe in C++ but not C?
我在代码示例中看到了这个向量声明
std::vector<double> v(10'000'007, 0.5);
这将生成大小为 10000007 的向量,因此必须将其转换为size_type。我也可以将其分配给类型 size_t
的变量,这并不奇怪。同样的声明无法用 C 编译,但是,我收到一个错误
#include <stdio.h>
void main()
{
unsigned x = 10'000'007;
printf("x: %dn", x);
}
warning: multi-character character constant [-Wmultichar] unsigned x = 10'000'007;
error: expected ‘,’ or ‘;’ before 'x303030'
这种样式使阅读声明更容易,但是是否真的在C++中添加了规则来使此编译?
在 C++14 中,整数文本已更新为允许使用可选的'
分隔符。
参考 [lex.icon]
十进制文字:
非零位
十进制文字’
选择数字
因此,您展示的代码片段不会以低于 C++14 的任何C++标准进行编译,并且 C 语言还没有此规则。
相关文章:
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- 分隔整数 (C++) 的数字
- 如何从文件中读取用空格分隔的数字
- C ++正则表达式允许用点分隔的数字
- 读取以逗号分隔的数字,并将其写入以制表符分隔的文件
- C++ 从文件中读取 int,每个数字用逗号分隔
- 我如何使用CIN输入整数,每个数字都被逗号分隔
- 如何从逗号分隔的数字对中填充 2 个向量 C++.
- 为什么我可以在 C++ 中用撇号分隔数字,但不能用 C 分隔数字
- 用字符分隔数字
- 逗号分隔的数字在模拟器上正确显示,但在iPad上没有显示
- 在 cpp 中使用 getline 输入数组中的空格分隔数字
- 给定分隔成数组元素的数字,如何在 int 中重新组合数字
- 如果字符串中没有空格,如何解析带有数字和字符的字符串并分隔数字和字符
- 扫描以空格分隔的数字
- 解析逗号分隔的数字(C++)
- C++ - 如何将空格分隔的数字输入数组
- 递增由不同分隔符分隔的字符数组中的数字
- 解析来自 getline 的空格分隔数字
- 如何在C或c++代码中分隔数字常量(例如10,000)中的数字