目录
- 一、程序的几个基本概念
- 二、什么是编译器
- 三、集成开发环境
- 3.1 IDE简介
- 3.2 windows 下的C语言IDE
一、程序的几个基本概念
计算机程序(Computer Program);港、台译做电脑程式。计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。
-
源程序:程序可以用高级语言或汇编语言编写,用高级语言或汇编语言编写的程序称 为源程序。C语言源程序的扩展名为“
.c
”。 源程序不能直接在计算机上执行,需要用“编译程序
”将源程序编译为二进制形式的代码。 -
目标程序:源程序经过“编译程序”编译所得到的二进制代码称为目标程序。目标程序 的扩展名为“
.obj
”。 目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问 题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。 -
可执行程序:目标程序与库函数连接,形成的完整的可在操作系统下独立执行的程序 称为可执行程序。
可执行程序(executable program,EXE File)是可在操作系统存储空间中浮动定位的二进制可执行程序。它可以加载到内存中,由操作系统加载并执行。特定的CPU指令集(如X86指令集)对应的不同平台之间的可执行程序不可直接移植运行。
在 Windows 下,可执行程序的后缀有 .exe
和 .com
(其中 .exe 比较常见,在MS-DOS下,有重名的.EXE文件和.COM文件运行时,优先执行.COM文件。);
在类 UNIX 系统(Linux、Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序(需要赋予可执行权限)。
二、什么是编译器
编译器(Compiler):能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)
。
编译通常是将一种高级语言“翻译”成低级语言。
现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。
其中:
预处理器是在真正的编译开始之前由编译器调用的独立程序。预处理器可以删除注释、包含其他文件以及执行宏(宏macro是一段重复文字的简短描写)替代。
连接器将编译器生成的若干个目标模块整合成一个可运行文件的实体(加载模块)。在C语言中,若干个源程序可以在不同时间分别编译,然后切当的时候整合在一起。
C语言的编译器有很多种,不同的平台下有不同的编译器:
- Windows 下常用的是微软编译器(cl.exr),它被集成在 Visual Studio 或 Visual C++ 中,一般不单独使用;
- Linux 下常用的是 GUN 组织开发的 GCC,很多 Linux 发行版都自带 GCC;
- Mac 下常用的是 LLVM/Clang,它被集成在 Xcode 中(Xcode 以前集成的是 GCC,后来由于 GCC 的不配合才改为 LLVM/Clang,LLVM/Clang 的性能比 GCC 更加强大)。
当你的代码被成功编译时,说明你的程序在语法上是正确的。
三、集成开发环境
3.1 IDE简介
实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,如:
- 编辑器:用来编写代码,并且给代码着色,以方便阅读;
- 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程;
- 调试器:观察程序的每一个运行步骤,发现程序的逻辑错误;
- 项目管理工具:对程序涉及到的所有资源进行管理,包括源文件、图片、视频、第三方库等;
- GUI界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。
这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、C-Free、Code::Blocks 等,它们统称为集成开发环境(IDE,Integrated Development Environment
)。
编译器如同电脑主机,而IDE则如同主机+外围设备(鼠标、键盘、显示器…)
3.2 windows 下的C语言IDE
windows下我们一般使用集成编译器的IDE来进行开发。
(1) Visual Studio:
官方地址:https://visualstudio.microsoft.com/zh-hans/
微软开发的 Visual Studio(简称 VS),是 Windows 下的标准 IDE,实际开发中大家也都在使用。为了适应最新的 Windows 操作系统,微软每隔一段时间(一般是一两年)就会对 VS 进行升级。VS 的不同版本以发布年份命名,例如 VS2022 是微软于 2022 年发布的。
这也是我最开始编程就是用的IDE(好像开始老师推荐同学使用的是vc++6.0),建议没有经验的读者先试试vs2015。后面的vs2019之类的虽然好用,但你刚开始可能有点摸不清。
Visual Studio可以在windows和mac上安装。而Visual Studio Code作为一款代码编辑器可以在Windows和类Unix系统上安装,配合一些插件也可以编译、运行你的代码,且软件较为简洁,只有几百兆。
(2) Dev C++
官方网站:https://www.bloodshed.net/
如果你讨厌 VS 的复杂性,那么可以使用 Dev C++。Dev C++ 是一款免费开源的 C/C++ IDE,内嵌 GCC 编译器(Linux GCC 编译器的 Windows 移植版),是 NOI、NOIP 等比赛的指定工具。Dev C++ 的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。
NOI 是National Olympiad in Informatics的缩写,译为“全国青少年信息学奥林匹克竞赛”;NOIP
是National Olympiad in informatics in Provinces的缩写,译为“全国青少年信息学奥林匹克联赛”。NOI、NOIP都是奥林匹克竞赛的一种,参加者多为高中生,获奖者将被保送到名牌大学或者得到高考加分资格。
(3) Visual C++ 6.0
Visual C++ 6.0(简称VC 6.0)是微软开发的一款经典的 IDE,一些高校以 VC 6.0 为教学工具来讲解C和C++。但VC 6.0是1998年的产品,很古老了,在 Win7、Win8、Win10 下会有各种各样的兼容性问题,甚至根本不能运行,所以不推荐使用。
VC 6.0 早就该扔进垃圾桶了,可是依然有一些大学把它作为教学工具,并且选用的教材也以 VC 6.0 为基础来讲解C语言和 C++,可见教学体制的极端落后,课程体系的更新远远跟不上技术的进步。
(4)其它 IDE
除了上面提到的三款 IDE,Windows 平台下还有很多其他的 IDE,它们各有特点,例如:
-
Code::Blocks 是一款开源、跨平台、免费的 C/C++ IDE,它和 Dev C++ 非常类似,小巧灵活,易于安装和卸载,不过它的界面要比 Dev C++ 复杂一些,不如 Dev C++ 来得清爽。
-
Turbo C 是一款古老的、DOS 年代的C语言开发工具,程序员只能使用键盘来操作 Turbo C,不能使用鼠标,所以非常不方便。但是 Turbo C 集成了一套图形库,可以在控制台程序中画图,看起来非常炫酷,所以至今仍然有人在使用。
-
C-Free 是一款国产的 Windows 下的C/C++ IDE,最新版本是 5.0,整个软件才 14M,非常轻巧,安装也简单,界面也比 Dev C++ 漂亮。C-Free 的缺点也是调试功能弱。可惜的是,C-Free 已经多年不更新了,组件都老了,只能在 XP、Win7 下运行,在 Win8、Win10 下可能会存在兼容性问题。