
1.8 Code Blocks
在Windows 7以后的操作系统中,Visual C++6.0不能很好地使用,尤其是在Windows 8、Windows 10操作系统中,Visual C++6.0彻底“下岗”,这对学习C语言造成了困难。因此,在64位的Windows 8、Windows 10操作系统中,强烈推荐初学者使用Code Blocks,如图1-10所示。

图1-10 Code Blocks
Code Blocks是一个开放源码的全功能的跨平台C/C++集成开发环境,并且是开源软件。Code Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受VS.NET的庞大和高昂的价格。
虽然Code Blocks从一开始就追求跨平台目标,但是最初的开发重点是Windows平台,从2006年Code Blocks 1.0发布时就成为了跨越平台的C/C++集成开发环境,支持Windows和GNU/Linux。由于它开放源码的特点,Windows用户可以不依赖于VS.NET,编写跨平台C++应用。
Code Blocks提供了许多工程模板,这包括控制台应用、DirectX应用、动态连接库、FLTK应用、GLFW应用、Irrlicht工程、OGRE应用、OpenGL应用、QT应用、SDCC应用、SDL应用、SmartWin应用、静态库、Win32 GUI应用、wxWidgets应用、wxSmith工程,另外它还支持用户自定义工程模板,在wxWidgets应用中选择UNICODE支持中文。
Code Blocks支持语法彩色醒目显示,支持代码完成、支持工程管理、项目构建、调试等。
Code Blocks支持插件,包括代码格式化工具Astyle、代码分析器、类向导、代码补全、代码统计、编译器选择、复制字符串到剪贴板、调试器、文件扩展处理器、Dev-C++DevPak更新/安装器、DragScroll、源码导出器、帮助插件、键盘快捷键配置、插件向导、To-Do列表、wxSmith、wxSmith MIME插件、wsSmith工程向导插件、Windows7外观等。
Code Blocks具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan77文件、GameMonkey脚本文件、Hitachi汇编文件、Lua文件、MASM汇编文件、Matlab文件、NSIS开源安装程序文件、Ogre Compositor脚本文件、Ogre Material脚本文件、OpenGL Shading语言文件、Python文件、Windows资源文件、XBase文件、XML文件、nVidia cg文件、识别Dev-C++工程、MS VS 6.0-7.0工程文件、工作空间文件、解决方案文件。
Code Blocks基于wxWidgets开发,正体现了wxWidgets的强大。以前Borland C++Builder X宣称基于wxWidgets开发跨平台、兼容性好、最优秀的C++IDE,但没有实现。国内的Code Blocks爱好者和跨平台开发员应该尽快建立中文Code Blocks网站,提供Code Blocks中文化支持,促进Code Blocks在国内的发展。
注意
Code Blocks正确的拼写应该是Code::Blocks,但为了叙述上的方便,特地使用Code Blocks来表达。
下面我们来介绍在Windows 10 64位操作系统下,利用Code Blocks来练习编辑、调试C语言程序代码的方法和步骤。
(1)启动Code Blocks。
(2)执行“文件”→“New”→“Project”命令,进入如图1-11所示的界面。

图1-11 项目文件的创建
(3)在系统提供的项目模板类型中选择“Console application”选项,选中之后单击“Go”按钮进行下一步操作,如图1-12所示。

图1-12 控制台应用程序的选择
(4)单击“Next”按钮继续,此处只是欢迎界面,如图1-13所示。
(5)在此处选择“C”,因为我们编辑的是C语言源程序。如果学习C++,照样可以使用该系统,只不过在这里就应该选择“C++”而已。选择之后单击“Next”按钮进行下一步操作,如图1-14所示。

图1-13 欢迎界面

图1-14 下一步
(6)在这个窗口中需要设置项目属性,包括“Project title”“Folder to create project in”“Project filename”“Resulting filename”四项信息。前两项必须填写,后两项内容系统会根据前两项自动生成,初学者可以不必填写。填写完成之后单击“Next”按钮进行下一步操作,如图1-15所示。
(7)在这里可以直接单击“Finish”按钮即可,如图1-16所示。因为该处设置的是调试信息和版本信息的保存路径,其中内容可以不必填写,选择默认值即可。

图1-15 设置项目属性

图1-16 设置保存路径
(8)以上只是完成了项目的设置信息,接下来才开始真正地建立C语言源程序文件。
注意
在一个项目中可以建立多个源程序文件,也就是说,一个项目可能包含多个源程序文件。所以我们在练习过程中,建立一个项目文件就足够了。
建立C语言源程序文件的方法是:执行“文件”→“New”→“Empty file”命令,建立一个空白的源程序文件。
刚建立的源程序文件只是一片空白,等待用户输入程序代码,而且在没有保存之前,它的文件名也只是诸如“Untitled1”这样的形式。
单击工具栏的“保存”按钮,提示确定该源程序文件的文件名及保存路径。输入文件名时可以输入后缀名“.c”,也可以不输入。当不输入时系统会自动加上“.c”后缀名,如图1-17所示。

图1-17 文件名及保存路径的选择
(9)接下来就是在右侧窗口中输入程序代码了。在这个过程中,如果输入错误,可以像文本一样进行编辑,直到确认没有明显的语法错误为止,如图1-18所示。

图1-18 C语言的编辑环境
在编辑C语言源程序的过程中,我们会感受到Code Blocks的方便之处,如图1-19所示,它会自动缩进对齐,并且使用虚线将同一层级的语句连接起来,便于用户分清逻辑层次。

图1-19 Code Blocks自动缩进对齐
另外Code Blocks还有自动完成功能等,比如用户输入左花括号“{”,那么它会自动配对输入右花括号“}”等。还比如用户输入函数printf,那么当输入前几个字母之后,比如输入的是“pri”,那么,凡是以“pri”开头的关键字、函数名等立即会列举出来,用户使用方向键选择想要的名词后再按回车键,则该名词会自动完成输入。比如这里选择printf函数,则该函数名、参数等都会自动完成输入,用户只需要作少量的修改即可,相当方便,如图1-20所示。

图1-20 Code Blocks自动输入功能
(10)接下来就是构建和运行。构建就是进行编译和连接,运行则是不但进行编译和连接,完成之后还模拟控制台运行并显示程序的运行结果。
可以使用组合键“Ctrl+F9”进行构建,使用组合键“Ctrl+F10”进行运行。
运行结果会显示在一个新的窗口中。
(11)执行构建之后,在系统窗口的底部会显示出构建信息,如图1-21所示。如果没有语法错误,则构建信息会以蓝色出现,并且可以看到错误报告的数量都为0。
如果有语法错误,编译不通过,则这里会出现黄色的警告信息。用户此时应该返回编辑状态,手动查错、纠错。改正错误之后再次尝试构建,直到编译连接完全通过,不出现任何警告信息为止。

图1-21 构建信息
Code Blocks使用GCC编译器。GCC(GNU Compiler Collection)是由GNU组织开发的编程语言编译器。它是以GPL许可证所发行的自由软件。GCC原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言,便很快地被扩展,变得可处理C++。后来又扩展能够支持更多的编程语言,比如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection),现已被大多数类UNIX操作系统(如Linux、BSD、Mac OS等)采纳为标准的编译器,当然,GCC同样适用于微软的Windows操作系统,所以,Code Blocks是一款优秀的集成开发环境。