【发布时间】:2016-06-23 07:01:04
【问题描述】:
此代码是否会在所有健全的(例如 2 秒补码算法)32 位机器上打印 -1,在 LLP64(即 64 位 Windows,其中 long 是 32 位)上打印 -1,在所有 64 位机器上打印 4 gig bit Unix OS:es(即在 LP64 OS:es 上):
#include <iostream>
using std::cout;
int main()
{
long li = 0xfffffffful;
cout << "size of li: " << sizeof(li) << ", li: " << li << '\n';
}
通常我对相关变量使用明确定义的大小,并使用 std::numeric_limits 而不是 'ul' 数字常量。所以我会写类似的东西
const uint32_t MAX_INTERVAL = std::numeric_limits<uint32_t>::max();
const int64_t some_var = MAX_INTERVAL;
【问题讨论】:
标签: c++