【C++ 小问答】4:数值运算中的小类型隐式转换
问 如下哪段代码有整数溢出:
1int Func(short a, short b) 2{ 3 return (a + b); 4} 1int Func(signed char a, signed char b) 2{ 3 return (a + b); 4} 1long long int Func(int a, int b) 2{ 3 return (a + b); 4} 1long long int Func(int a, int b) 2{ 3 return ((long long int)a + b); 4} 答 导致整数溢出最常见的场景,是在数值计算中没有对较小类型的操作数做恰当的类型转换1。而上述的前三段代码看起来都涉及 …