C语言未定义行为
1,字符向整型扩展时,是否保留符号位,有的实现为保留符号位,有的则在高位直接用0填充而不保留符号位。
2,右移位时,空出的位填充的值,有的C语言实现为补0,有的则补符号位。
3,移位计数的限制,如对int型数据,通常为不超过该类型的位数,即对int移位不能超过32。
4,内存位置0,有的C语言实现对0内存位置实施了硬件级保护,不允许读写;有的实现为只读;有的则可读,可写。
2,右移位时,空出的位填充的值,有的C语言实现为补0,有的则补符号位。
3,移位计数的限制,如对int型数据,通常为不超过该类型的位数,即对int移位不能超过32。
4,内存位置0,有的C语言实现对0内存位置实施了硬件级保护,不允许读写;有的实现为只读;有的则可读,可写。
5,如果(a)当main调用exit或者_exit等不带终止状态,或(b)main执行了一个无返回值的return语句,或(c)main执行了隐式返回,则该进程的终止状态是未定义的。