Chinaunix首页 | 论坛 | 博客
  • 博客访问: 584465
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2356
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-20 09:35:39

对于同样的代码:
cout << typeid( 0 << 0 ).name() << endl;
cout << typeid( 0l << 0l ).name() << endl;
cout << typeid( 0 << 0l ).name() << endl;
cout << typeid( 0l << 0 ).name() << endl;

g++3.4.2 输出:
i 即 int
l 即 long
i 即 int
l 即 long

VC++6.0 输出:
long
int
long
int

g++的规律是:结果的类型取决于第一个操作数的类型,这一点要记住,我一开始以为 int<

VC的规律是:???,实在看不出任何规律,但结合gcc的表现来看,那么规律就是:g++输出什么,我就坚决不输出什么,哈哈!

BTW:正如  所说:不能拿vc++6.0和g++想比,那不是一个时代的产品,但
a. 本文目的并不是用于贬低VC++6.0,而只是觉得VC6行为很奇怪,找不到理由得奇怪。
b. 对于VC++,在7.1、7.2、8.0beta2变得成熟且经过市场检验之前,我只敢用VC++6.0。

阅读(2976) | 评论(26) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-20 09:39:39

bluker
呵呵,我支持VC6,我爱这个东东,用得熟比什么都好。。。。至少我编译我的程序,我知道代码里面的零件是如何工作的。
vs系列。。。我认为不如用VB或Df.j2me也不错。

网友评论2012-11-20 09:39:32

绅士亦花心
看来以后最好别写文章了!我突然发现这个世界完美的人怎么那么多?换句话说,挑刺找茬的人怎么那么多?

网友评论2012-11-20 09:39:26

lxwde
好久没来逛。星星同学这里好热闹。

网友评论2012-11-20 09:39:16

纳米
更新速度快并不等于前一个版本bug多,并不代表歉意版本不成熟

网友评论2012-11-20 09:39:08

无名
主要是在别处看了文章,看到你一直在说VS.NET不好,所以说的有些混乱,嘿嘿
VS2005Beta的Bug太多了,而且不能用VA
只好等正式版了