| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 1207 人关注过本帖
标题:一个小程序,为什么TC跟VC的结果不同
收藏  订阅  推荐  打印 
hxgcczz
Rank: 1
等级:新手上路
帖子:19
积分:340
注册:2008-1-11
一个小程序,为什么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-1-17 23:09
Gnail
Rank: 1
等级:新手上路
帖子:8
积分:186
注册:2008-1-17

我觉得是4 4
2008-1-17 23:12
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4128
积分:44851
注册:2006-12-28

这个是编译器对++的解释顺序不同.个人觉得知道就行了,没必要太深究...个人观点,,,
2008-1-17 23:13
Gnail
Rank: 1
等级:新手上路
帖子:8
积分:186
注册:2008-1-17

可不可以让我入群。。。
我是个刚学C的 之前也没学过什么语言的
我想进步进步 呵呵
2008-1-17 23:13
hxgcczz
Rank: 1
等级:新手上路
帖子:19
积分:340
注册:2008-1-11

那按照老潭的书上介绍的,结果应该是5,4吧
2008-1-17 23:14
hxgcczz
Rank: 1
等级:新手上路
帖子:19
积分:340
注册:2008-1-11

群号50661035
不过你不要报太大希望,因为里面的人基本不怎么交流,我入了4天,里面才谈了2次话
2008-1-17 23:21
forever74
Rank: 4
等级:高级会员
威望:2
帖子:505
积分:5844
注册:2007-12-27

这个问题很典型
VC默认的是DEBUG状态,为了迁就调试功能,对代码作了一些不是很ANSI的加工,造成结果不准确。
也就是说,如果把VC调整到Release状态,不要调试信息了,带有编译优化/O1或者/O2了的话,结果就正常了。
这样VC也是5,4了,呵呵
2008-1-17 23:54
hxgcczz
Rank: 1
等级:新手上路
帖子:19
积分:340
注册:2008-1-11

呵呵,虽然不是太懂,但是基本上已经了解了,多谢各位大哥的指教。
2008-1-18 00:13
forever74
Rank: 4
等级:高级会员
威望:2
帖子:505
积分:5844
注册:2007-12-27

所有编译器都有这样那样的毛病,关键在于回避。
2008-1-18 10:04
linsua
Rank: 3Rank: 3
等级:中级会员
帖子:275
积分:3186
注册:2008-1-2

谁再自找这样的未定义的行为的麻烦,拖出去~~

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-1-18 10:16
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.048986 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved