这跟变量 i 的类型没关系。只要 `256*256*256*255‘ 这么一句就出那个警告。因为立即数 256 是 `signed int‘ 类型的,算完乘法就溢出了。
表示整型常量时,可以在后边加上修饰,比如 `256u’ 表示无符号的整型,`256l‘ 或 `256L’ 表示长整型,两个 L 就是 long long 类型了。还有浮点型的数据,`256.0‘ 是双精度浮点数,`256.0f’ 就是单精度的了。写法上就差一两个字符,其实差远了,不能指望着编译器去做类型转换,得一开始就人工安排好。