码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习笔记(5):未定义行为

时间:2016-10-14 22:58:34      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

接触到这份概念的起因是这样的,有这样一段代码:

#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):未定义行为

标签:

原文地址:http://www.cnblogs.com/FrogIf/p/5962135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!