Mak*_*gan 43 c++ syntax numbers
想象一下,我有代码:
vector<int> temp = vector<int>(1 000 000 000);
Run Code Online (Sandbox Code Playgroud)
上面不会编译,因为编译器会抱怨空格.是否可以指示C++在编译时省略这些空格,或者使数字更容易阅读?
小智 103
尝试数字分隔符:
int i = 1'000'000'000;
Run Code Online (Sandbox Code Playgroud)
此功能是从C++ 14开始引入的.它使用单引号(')作为数字分隔符.
另见:
Fak*_*ame 30
当我在没有C++ 14(通常用于微处理器)的平台上做类似的事情时,我通过乘法将它分开来表示大数:
int i = (1000 * 1000 * 1000);
Run Code Online (Sandbox Code Playgroud)
添加UL或L后缀以品尝
这里的优点是它基本上符合支持C89(可能更早)的任何平台.
通常,假设乘法运算符在编译时会失效可能是安全的,但如果你在循环中使用这样的常量,那么可能值得进行双重检查.
小智 10
我通常为这个目的#define常量,因为它可以节省计数零,并且非常清楚你对查看代码的人意味着什么.例如
#define THOUSAND 1000
#define MILLION 1000000
vector<int> temp = vector<int>(THOUSAND * MILLION);
Run Code Online (Sandbox Code Playgroud)
这清楚地表明我真的意味着千万并且没有错误地计算零
显然,如果您愿意,可以使用枚举.
| 归档时间: |
|
| 查看次数: |
6651 次 |
| 最近记录: |