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