【发布时间】:2014-09-02 23:41:15
【问题描述】:
#include <iostream>
#include <climits>
#include <cinttypes>
using namespace std;
int main()
{
uint16_t i = 0;
cout << USHRT_MAX << '\n' << i - 1 << '\n';
return 0;
}
输出
65535
-1
我期望两个相等的输出,但事实并非如此。这不是不符合标准的行为吗?
*系统:Windows7
*编译选项:g++ -o $(FileNameNoExt) $(FileName) -std=c++11 -Wall -Wextra
【问题讨论】:
-
这绝对是重复的。但是我很难找到一个好的目标。
标签: c++ gcc integer-overflow