Chinaunix首页 | 论坛 | 博客
  • 博客访问: 829945
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 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。

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

网友评论2012-11-20 09:38:15

无名
VS8.0beta的推出的确很快
但是VS8.0推出很快?
如果MS不尽快更新自己的产品难道等别人超过自己?

网友评论2012-11-20 09:37:49

firingme
首先,VC7是失败的,下面的文字只是针对VC7.1也就是VS2003。不过VS2003个人版和企业版的VC版本号好像也有变化,我这里指的是企业版的那个VC7.1。

其次,微软的传统是用VS开发VS,所以,VS2003是用VS2002开发,VS2005是用VS2003开发,一点不奇怪。

下面列几点吧,你在blog上说话是从来不动脑子的,感觉像个小孩子,呵呵……

1、我机器上没有装Office 2003,不好做结论。不过VS2003的devenv.exe的引入表信息如下:
->Import Table
  中间省略...
   7. ImageImportDescriptor:
    OriginalFirstThunk:  0x0001476C
    TimeDateSta

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

周星星
你认为VC7.1成熟了,请问:
a. 有几个软件是VC7.1编译出来的?难道office2003是VC7.1编译出来的?难道VS.net是VC7.1编译出来的?
b. 如果VC7.1成熟的话,为什么短短时间内又推出VC8.0beta?

旁门左道 这个词我是加了引号的,这是个反语你应该知道吧?!
C/C++中有旁门左道的语法吗?你认为goto是旁门左道,还是template是旁门左道?C/C++中有你不需要用到的语法,但绝没有旁门左道的语法。C/C++标准委员会成员是由全世界几十个国家的专家组成的,如果真的存在不应该使用的语法,那么这些语法会被加到C/C++中来吗,记住一点:你不是专家。

VC7.1既不是开源软件,也不是免费软件,所以你说的开源软件用VC7.1有点滑稽,如同你施舍半片面包给非洲难民,却要求非洲难民报销你去非洲的飞机票。
你说的也许是开源软件,但不是大部分的开源软件,而是windows上那些烂得卖不出去的小软件,借开源名号来

网友评论2012-11-20 09:37:12

firingme
VC7.1不成熟?周星星有点太XX了吧?

“比如某些标准C++语法,为清风雨所不齿,当然他就不会用到,但这些“旁门左道”却是我所做项目必须用到的”如果一个项目以使用了“旁门左道”为荣的话,那个这个项目也没什么意思。一般“旁门左道”是在“实在没有办法”的情况下,搞出来的解决方案,如果最后竟然堂而皇之地成了项目的“闪光点”的话,我不知道这个项目到底是个什么性质的项目。

可以看看现在大部分的开源软件,不支持VC7.1的已经很少了。

网友评论2012-11-20 09:37:03

周星星
“intel c++个人认为其优化指针对intel的cpu,相比vc来说,通用性差一些。”
------ :)甚至AMD,都拿ICC来优化自己的程序,这众所周知。这说明两个事实:
a. ICC是优秀的,对所有CPU而言都是最优秀的。
b. AMD有一流的硬件设计师,但软件设计能力却很差。