C语言对于int类型数据超出范围的处理,只有一个最简单的原则:截断处理,即超出int位长度范围的高字节被自动截掉。
比如,假设int长度为16位的情况下,以下代码:
int
a=0X77FFFFL
/*
由于超出范围,高位的77将被自动截掉,实际的a将会等于0xFFFF
*/
++a
/*
a自增后,将超出范围,高位的1被截掉,实际a=0
*/
C语言对于int类型数据超出范围的处理,只有一个最简单的原则:截断处理,即超出int位长度范围的高字节被自动截掉。
比如,假设int长度为16位的情况下,以下代码:
int
a=0X77FFFFL
/*
由于超出范围,高位的77将被自动截掉,实际的a将会等于0xFFFF
*/
++a
/*
a自增后,将超出范围,高位的1被截掉,实际a=0
*/