gcc 4.8.4警告1u << 63ul?(假设64位long和32位int)并计算0.这是正确的(没有晋升1u到1ul转移之前)?
ISO/IEC 9899:201x,6.3.1.8(通常的算术转换):"许多期望算术类型的操作数引起转换的运算符"; 6.5.7(按位移位运算符):"对每个操作数执行整数提升......".
但我无法得出结论.哪些是"很多运营商"?据我所知,"整数提升"不属于宽泛的类型int(我是否正确?),但标准没有明确声明对于隐式类型转换不考虑按位移位的右操作数.