标题:一个小程序,为什么TC跟VC的结果不同
只看楼主
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
 问题点数:0 回复次数:14 
一个小程序,为什么TC跟VC的结果不同
群里一位朋友出了个简单的小程序,但是为什么我在TC跟VC运行的结果不同呢?
#include "stdio.h"
void main()
{
 int i=3;
 i++;
 printf("%d,%d",i,i++);   
}
在TC里的结果是5,4
在VC里的结果是4,4
甚至有朋友在C#里的结果也是4,4
但是个人觉得从理论上应该是5,4
但为什么其他两种编译器出的结果不同呢?
搜索更多相关主题的帖子: 结果 理论 void int 
2008-01-17 23:09
Gnail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-1-17
得分:0 
我觉得是4 4
2008-01-17 23:12
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
这个是编译器对++的解释顺序不同.个人觉得知道就行了,没必要太深究...个人观点,,,
2008-01-17 23:13
Gnail
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-1-17
得分:0 
可不可以让我入群。。。
我是个刚学C的 之前也没学过什么语言的
我想进步进步 呵呵
2008-01-17 23:13
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
得分:0 
那按照老潭的书上介绍的,结果应该是5,4吧
2008-01-17 23:14
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
得分:0 
群号50661035
不过你不要报太大希望,因为里面的人基本不怎么交流,我入了4天,里面才谈了2次话
2008-01-17 23:21
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
这个问题很典型
VC默认的是DEBUG状态,为了迁就调试功能,对代码作了一些不是很ANSI的加工,造成结果不准确。
也就是说,如果把VC调整到Release状态,不要调试信息了,带有编译优化/O1或者/O2了的话,结果就正常了。
这样VC也是5,4了,呵呵
2008-01-17 23:54
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
得分:0 
呵呵,虽然不是太懂,但是基本上已经了解了,多谢各位大哥的指教。
2008-01-18 00:13
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:0 
所有编译器都有这样那样的毛病,关键在于回避。
2008-01-18 10:04
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
得分:0 
谁再自找这样的未定义的行为的麻烦,拖出去~~

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-18 10:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-197842-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.103139 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved