首页 > 代码库 > C语言学习笔记(5):未定义行为
C语言学习笔记(5):未定义行为
接触到这份概念的起因是这样的,有这样一段代码:
#include <stdio.h> void main() { int i = 5, j = 5, p, q; p = (i++) + (i++) + (i++); q = (++j) + (++j) + (++j); printf("%d, %d\n", p, q); }
这段代码,在VC++6.0和在线编译器codepad中编译结果是:15,22
在VS2015中的编译结果是:15,24。这说明同样的语句,在不同的编译器中运行结果不同!!!居然会有这种事发生!
未定义行为(UB:undefined behaviour)是指:在C语言标准中未做定义的行为。未定义行为有好多种,对于未定义行为没有深入研究,查了一些资料,得知未定义行为对于程序性能、安全性等等都有影响,深入的内容详见http://blog.csdn.net/wuhui_gdnt/article/details/8676994以及后续的几篇内容。
C语言学习笔记(5):未定义行为
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。