今天看了下c++ primer,才知道假如a为long long或者double类型,b为int类型,假如有表达式a >= b,则编译器会将b先转化为long long或者double类型,也就是说会将窄类型自动转化为宽类型,这一步是自动转化的,没有必要在代码中再强制转化。
但是有个特例,假如a = INT32_MIN,则-a会越界,其数值在我的平台上为-2147483648,如果要得到2147483648,则需要将a先转化为long long,再求负。
今天看了下c++ primer,才知道假如a为long long或者double类型,b为int类型,假如有表达式a >= b,则编译器会将b先转化为long long或者double类型,也就是说会将窄类型自动转化为宽类型,这一步是自动转化的,没有必要在代码中再强制转化。
但是有个特例,假如a = INT32_MIN,则-a会越界,其数值在我的平台上为-2147483648,如果要得到2147483648,则需要将a先转化为long long,再求负。