【发布时间】:2016-03-09 16:30:37
【问题描述】:
下面的例子用来说明我的问题:
#include <iostream>
#include <string>
int main()
{
signed char p;
signed char temp=100;
signed char t=4;
p = (temp+temp+temp+temp)/t;
std::cout << "Hello, " << int(p)<< "!\n";
}
在上述代码中,变量p定义为四个singed char变量的平均值。但是,有符号字符变量(temp+temp+temp+temp)的总和将大于有符号字符的范围。所以我的问题是 C++ 如何处理这种情况。
【问题讨论】:
-
如果您混合了有符号和无符号变量,您可能需要进行显式转换以确保一切都以您想要的方式出现。你的例子没有这个问题。
标签: c++ casting integer-overflow