一样的代码,不一样的编译器

热烈祝贺C++课程设计终于完工啦~~2450行好多的样子。。。

查看上学期C语言的课程设计(已更新)-学生成绩管理系统

在这期间上网搜了好多东西,一不小心翻出一篇若干年前的文章:《一个Sqrt函数引发的血案》(推荐看看)其中用到了比较各个函数运行时间的方法。文章指出有一个比编译器<math.h>库自带Sqrt()函数效率更高的求根函数。于是抱着试试看好玩的心理我想验证一下。

首先一件事就是怎么比较各函数运行时间;文章里只有运行截图木有提怎么实现,好吧,我不会说我在百度知道上找到了答案···

完整代码:

好不容易把需要比较的代码都复制下来了,结果运行时间都是一样的,,,,0秒。。。呃,让他来个循环百万次······

OK,运行结果和预想不一样···该不会是这几年编译器发现了自己效率被超越已经改进了吧。。于是我换用Visual Studio 2013试试~

使用学生账号免费获取Visual Studio

结果更让人大吃一惊啊!!!

运行结果比较
运行结果比较

为什么网上这么多Windows环境下编译器推荐VS!!编译器哪个好-谷歌|编译器哪个好-百度

效率完全不行啊啊啊!!C::B编译的只需0.01秒的计算,VS 需要0.1秒,C::B只需2秒的VS需要6秒。。。

呃简直不敢吐槽。。。

瞬间想起上学期C课程设计时也被V坑过。。

比如默认新建的项目不是空工程,而是什么预编译头。。于是项目里连main()函数都被换成了_tmain()。好吧是我孤陋寡闻不懂,,但那时还是C初学者哪能理解不带main()函数的程序。。。

还有一个就是localtime()的报错,以前是警告,现在升级为错误了,必须要使用更安全的localtime_s(),原谅我连原来的localtime()都不会用还要让我改成另一个。果断放弃VS转战C::B。(现在还是不会_s哪个啊,求科普)

 

时间过去了好久,到了某一天我直接进入了Win8而不是win7.

三系统:Win7+Ubuntu+Win8.1

想起了当初那血案,看看Win8下效果怎么样。事实证明,不作死就不会不会死:

C::B编译的还是一样,VS编译的——与预想——又相反了——直接就不能打开啊!

VS编译的程序在Win8下不能直接打开
VS编译的程序在Win8下不能直接打开

这个不是说VS完全是为windows做了优化的吗,所以编译的程序比C::B小很多,原来有这个代价啊。

综上,推荐初学者(就是我)首选Code::Blocks~

最后,分享汉化包(13.10也可以用,只是不完全,不过不影响使用)(感谢青春年少时的博客分享


“一样的代码,不一样的编译器”的18个回复

Loading...
  1. [/呲牙] 大神这么狠,研究这么仔细。确实身边很多人都说C::B比较好。我近期在写博客关于OC学习的学习笔记。http://write.blog.csdn.net/postedit?ref=toolbar这是链接,有时间来看看,求大神指点。

发表评论

电子邮件地址不会被公开。 必填项已用*标注