大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C++技巧 > 编程及C/C++初学者常见问题(FAQ)

编程及C/C++初学者常见问题(FAQ)(15)

关键词:编程C/C++初学者FAQ常见问题  阅读(5263) 赞(32)

[摘要]本文意在集中解决新手学习C/C++语言时将遭遇到的各类问题,本文主要分析概念原理和解决方案,不讨论具体程序语法,立足于让初学者能运行起第一个程序。其他事宜如解释入门语法等本文基本不涉及。
 一个人孤单做题的滋味是很郁闷的,尤其是当你确实绞尽脑汁也搞不定的时候。幸好线上还是有很多同样在做题的朋友,他们通常会在论坛BBS之类的地方集中讨论解题心得,甚至有可用的答案。建议用OI (Olyimpiad in Informatives 信息学奥林匹克)为关键字搜索。请不要用答案代码直接提交哦。

哪里有代码示例可看

   这个可以自己google或baidu。

   如果你已经能够做一些OJ的题了,那么可以考虑看一些开源软件的代码。http://sourceforge.net/ 是全球最大的开源软件集中地,确定一个应用主题上去找就会有收获。不过说实话,从OJ到项目是很大的跨越,所以要找到适合自己的项目来看是不容易的。个人的建议是,找一些知名的又比较小规模的项目,然后找他的早期版本的代码,会比较清晰,比如 vim1.0/2.0 lua1.0 apache1.0这种。

五、选择编译器

有哪些编译器可用

   一般国内学习有以下几款可以用:TC VC GCC LCC-Win32,以下分别介绍。

   TC 是Borland公司出品的Turbo C的简称,运行于DOS平台,win下可在控制台下使用。国内常用2.0版作为学习和考试的平台,为于1989年发布的产品,距今大约20年。另有3.0版本也可以使用,3.0比2.0多了C++语言支持。Turbo C 提供了两种编译环境:一种是类似于UNIX环境的命令行,包含一个TCC编译器和一个MAKE实用程序;一种是集成开发环境,由编辑器、编译器、MAKE实用程序和RUN实用程序,还有一个调试器组成。

   TC2 具有编译速度快、代码优化效率高等优点,所以在当时深受喜爱。但由于DOS环境已经不是应用主流,所以TC基本不能用来作为软件开发平台。在今天由于TC对系统要求低,操作简便容易上手,他仍然是新手学习C语言的入门编译器之一。传闻Borland已在2002年放开TC的所有权,如果属实,那么使用Tc不再存在任何法律问题。

   VC 指的是Microsoft公司的集成开发工具套装VisualStudio中的C/C++语言集成开发环境Visual C++。

   目前可以使用的版本有VC6.0,和2005(即VC8)。VC2002/2003是过渡产品,可以不考虑。截至本文最后更新时,2008测试版已发行,2008正式版即将推出。

   VC的编辑编译调试都可以在同一个窗口内完成,在Win下兼容性最好,代码效率高,被广泛用作Win下各类程序的开发,可以说是Win平台下的标准开发工具。使用VC意味着和微软同一阵营,文档有微软的官方文档MSDN作为最权威的参考,示例代码数量巨大,学习投资得到有效保护。纯粹学习和开发win本地应用可使用VC6,如果需要进行.net程序开发,就要用2005版。

   VC系列的缺点有三:第一是体积庞大,VC6不包含MSDN容量为250M左右,包含则再加1G。VC2005不包含MSDN容量为2.7G,包含再加1.6G。第二是操作复杂学习门槛高,如果要在集成环境编译,必须建立工程和一批附属文件,同时还要熟悉集成环境的使用。第三:VC是有版权的软件。按照法律规定不付费购买是不可以使用VC的,因教学目的可以免费使用,但不能用于商业活动(不过显然国内的兄弟根本不理会这一套)。

   VC6有一点要补充说明,VC6是没有中文版的。你所看到的中文版是某些人汉化的结果。虽然简洁明快,但在有些时候会出现莫名其妙的问题,还是直接使用英文版为好。

   VC2005分为好几个版本,其中有一套叫做Express版的值得一提。他是微软送出的免费版,专门提供给学生和爱好者使用,功能上有删节,主要是图形界面和大量的工业用库和工具被裁减,而且基本只能在命令行编译。不过对于学习C/C++语言本身是完全足够的。如果有版权顾虑,可以用它。

   GCC GNU Compiler Collection 也即是 GNU 编译器家族。

   GCC是开源软件,是自由软件的旗舰项目,是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

   GCC 不仅仅能支持 C 语言,它还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言等等等等。另一方面,说到 GCC 对于各种硬件平台的支持,概括起来就是一句话:无所不在。几乎所有有点实际用途的硬件平台,甚至包括有些不那么有实际用途的硬件平台。

   根本无需再用什么语言来描述GCC的优点。几乎所有的开源软件和自由软件都是使用GCC编译的。如果要评选世界上编译出程序最多的编译器,除了GCC没有谁能担当这个荣誉。GCC的卓越是不言而喻的,连微软的员工也在使用GCC,学习GCC就是和世界上最优秀的程序员并肩作战。

   GCC最早是在Unix平台上开发的,所以在Solaris/Linux/BSD等Unix平台上是默认组件。通过黑客们的努力,GCC已经被移植到Windows平台,而且性能绝无缩水。Win平台下的GCC有两种形式,一种是集成开发环境的,典型的是DEV-CPP,另一种是纯粹编译器和命令行指令集合,以MingW项目为首。

   GCC的缺点是对新手不友好,命令行编译方式需要学习才能彻底掌握。

   LCC-Win32

   这是个小巧的纯C集成开发环境,目前最高版本4.0,和上面三个编译器相比,它有很多明显的优势。

   第一她很小巧,全部安装不过30M多,相比VS2005这种庞然大物,简直是迷你的不行。虽小却不缩水,他的确能够编译出Win下的可执行程序,这一点是同样小巧的TC做不到的。可以肯定地说他是Win平台下体积最小的C环境。第二他完全支持C99标准。VS2005基本不能支持C99标准,GCC可以支持C99,但需要适当的配置,而LCC-Win32原生支持,无需任何调节。第三点最关键,它是自由软件,也就是说,他和GCC一样可以免费使用,而且作出的程序也可以自由的销售。缺点是缺少中文文档,无中文版是使用上最大的不便。

   还有其它一些编译器,比如Borland的C++编译器BCB系列其中包括免费BCB5命令行版,Intel的Intel CPP Compiler等。在《C++编译器推荐目录》一文中有一个收集的编译器列表,各位可以前往参观。Blog:  http://blog.csdn.net/sunwhite 。编译器如此之多,在下就不一一介绍了。

还有些可以配合编译器的开发环境

   上面提到的或者是编译器,或者是整合编译器的开发环境。实际上有时我们还用另一种形式,就是用一个开发环境再搭配一个已有的编译器。

   首先是业界很有名的Eclipse,这个是由IBM公司开发的一款java的IDE。但由于他设计出色的插件机制,使得在安装了插件之后,他可以通常充当C/C++的IDE。不过,只是在编辑上提供了方便,如果要编译程序的话,就要配合GCC的编译器才行。其实安装插件和编译器之后,Eclipse可以充当C/C++ python perl等很多语言的IDE。

   第二个是一个开源的C++IDE,名叫Code::Bblocks。开源、跨平台、代码提示、支持插件、支持代码折叠,配合GCC可以说是完美的IDE,性能与VS2005不相上下。唯一的问题是:自从2005年10月25日发布了1.0rc2版本之后,就没有新的更新了。按官方的说法是在内核部分作重大修改,不过这个时间也太长了些。

   第三个应该是算一大类,就是配置好的文本编辑器。Editplus、VIM、Emacs,这三个编辑器非常有名,而他们的可配置型使得他们能够很方便的成为准IDE。尤其是Emacs,当Emacs设置完成的时候,程序员根本不必退出他,就可以完成编程的所有工作。Emacs被戏称为程序员的操作系统,意思是它不仅仅可以用来编程,他可以做一切事,只要配置完全。


相关C++技巧推荐

    暂时没有相关推荐



    相关评论