下面的代码第一眼看上去结果应该是1,2,3,
int i=1;
printf("%d,%d,%d",i++,i++,i++)
可实际上不是这样的。
C语言的结果是:3,2,1
C++的结果是:1,1,1
C#的结果是:1,2,3
为什么呢?难道就是编译器的问题所在?
希望这样的问题不要出现在试题里,要不说明情况,真是难做啊0_0阅读全文>
发表于 @ 2009年06月04日 16:21:00|评论(loading...)|举报|收藏
简介vc中的release和debug版本的区别
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)
Debug 版本
参数 含义
/MDd /MLd 或 /MTd 使用 Debug runtime library (调试版本的运行时刻函数库)
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关 (主要针对assert函数)
/ZI 创建 Edit and continue(编辑继续)数据库阅读全文>
发表于 @ 2009年06月04日 14:41:00|评论(loading...)|举报|收藏