求助: poj上提交代码的c++指的什么是什么编译器? 和g++有什么不同啊?

为什么同一个代码用c++编译器的话内存只占g++编译器的一半,但是g++的速度快!这是为什么?... 为什么同一个代码用c++编译器的话内存只占g++编译器的一半, 但是g++的速度快!这是为什么? 展开
 我来答
Mr_Yang2012
2012-12-27 · TA获得超过1647个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:491万
展开全部
G++是一个GNU编译器,而C++是微软VC++的编译器。这两种编译器对不同的地方有优化,因此速度谁快谁慢不一定吧。有些题目使用C++提交相同的代码运行时间只有G++的八分之一,很是让人费解(可能是POJ是windows为基础的原因吧)。G++中对栈内存有优化,允许定义这样的数组:
int a[n]; (n为变量)。不过C++中有些可以使用的函数在G++中是没有的,这点要注意啊。所以很多C++编译通过的代码到G++上就CE了,对于G++也是如此。而且貌似两种编译器的编译的程序在浮点数精度控制上有差异。一些计算几何题目使用G++就WA,而使用C++就可AC。虽然我写代码一直用G++,但是这个的具体原因也搞不清出。
更多追问追答
追问
谢谢你的详细回答
还有:
为什么同一个代码用c++编译器的话内存只占g++编译器的一半,我用的int数组

是不是c++中的int是2字节啊?我很纳美呀!
追答
不是,目前int大小基本上都是4bit,原因可能是编译器的优化问题(比如对堆栈的优化),也有可能是自身代码的问题导致的。有问题的代码可能会导致这种情况。
cjfeii
2012-12-28 · TA获得超过395个赞
知道小有建树答主
回答量:497
采纳率:0%
帮助的人:434万
展开全部
g++编译的程序占用内存大,速度快,这很好理解啊,就是牺牲空间换取速度啊。
追问
可是是怎样做到的呢?
表示费解啊!
追答
那你要看编译器使用什么算法实现的啊,具体我不是很清楚,大致明白这个原理,如果你想详细了解的话,你去看一下C++和G++编译器的实现吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
redon94
2012-12-27 · TA获得超过147个赞
知道答主
回答量:58
采纳率:0%
帮助的人:33.1万
展开全部
g++ 是gnu的编译器
c++ 是vc++6.0
而且那个g++要新一些,推荐使用。
追问
谢谢你的详细回答
还有:
为什么同一个代码用c++编译器的话内存只占g++编译器的一半,我用的int数组
是不是c++中的int是2字节啊?我很纳美呀!
追答
C/C++的int大小取决于编译环境
如16位的Turbo C中int是2字节
而32位的VC++/G++ 等是4字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式