目录

  • 一、程序的几个基本概念
  • 二、什么是编译器
  • 三、集成开发环境
    • 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 下可能会存在兼容性问题。

【C语言编译器】01程序-编译器-IDE相关推荐

  1. linux有哪些高级语言编译器,程序语言,操作系统,编译器三者之间有何关系?...

    程序语言,操作系统,编译器三者之间有何关系?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序语言,操作系统,编译器三 ...

  2. 什么是编译器?(程序是怎么跑起来的)

    我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program).在 Windows 下,可执行程序的后缀有 .exe 和 .com(其中 .ex ...

  3. 编译器与编辑器以及IDE的区别【前方高能】

    一.编译器 编译器的的概念百度词条上面这样子定义: 简单讲,编译器就是将"一种语言(通常为高级语言)"翻译为"另一种语言(通常为低级语言)"的程序.一个现代编译 ...

  4. 大学生学习路线——语言的选择,编译器的选择,平时学习的建议(面向入门者)

    目录 一.我们的目标是掌握什么 一.技能 1.计算机语言 2.编译器 二.思维 二.实际操作 1.一点建议 2.分享一些有用的网站 一.我们的目标是掌握什么 刚接触IT领域,不管你是大学生还是社会工作 ...

  5. 编译原理课程实践——实现一个初等函数运算语言的解释器或编译器

    编译原理课程实践--实现具有初等函数运算语言的解释器或编译器 作者:Sylvan Ding |转载请注明文章出处! 摘要:本文主要内容是设计词法分析器.语法分析器(LL(1).SLR(1))和语义分析 ...

  6. C0语言解释执行程序,C0编译器”案例概述.ppt

    <C0编译器"案例概述.ppt>由会员分享,可在线阅读,更多相关<C0编译器"案例概述.ppt(10页珍藏版)>请在人人文库网上搜索. 1.第3章 &quo ...

  7. 【C语言入门】VS编译器:scanf返回值被忽略

    一.发现问题 学习C语言中使用VS编译器,期间使用scanf函数会遇到报错警告:返回值被忽略:"scanf"的情况. 二.分析问题 这个问题是因为scanf不检查边界,会引起内存泄 ...

  8. 编译器构造c语言描述pdf,关于编译器构造:为什么每次都要在C中指定数据类型?...

    从下面的代码片段中可以看到,我声明了一个char变量和一个int变量. 编译代码时,它必须标识变量str和i的数据类型. 为什么在扫描变量期间需要通过将%s或%d指定为scanf来再次告诉它是字符串还 ...

  9. c语言编译器 代码优化,c编译器高级篇!!搞定c编译器优化

    对于c编译器,想必大家也有所了解,3款主流c编译器也是活跃在不同人群的PC上.网络上很多文章都止步于对c编译器的介绍,并未探索c编译器更加深层次的内容.而在本文中,将涉及c编译器的高级部分--c编译器 ...

最新文章

  1. XML文件的生成与读取
  2. android 之ViewStub
  3. Juniper 210 密码清不掉_三分钟学会如何找回mysql密码
  4. vue 时区转换_vue---时间戳转换
  5. C++ Lambda表达式demo
  6. 深度学习面试的一些知识
  7. 基于设备树的TQ2440 DMA学习(2)—— 简单的DMA传输
  8. 推荐:免费万能视音频转换软件--格式工厂
  9. win7更改计算机名后桌面壁纸,win7桌面壁纸不能更换怎么办-处理win7桌面壁纸无法更换的方案 - 河东软件园...
  10. MTK.SP Flash Tool v6.2208 联发科V6版本 线刷工具教程下载
  11. HTML基础知识笔记
  12. 什么是USBHOST、USB Slave和USB OTG?它们之间有什么区别 USB、MiniUSB、MicroUSB
  13. css透明度兼容问题opacity
  14. android仿空间短视频播放
  15. 解决使用plt.savefig保存图片时一片空白
  16. Leetcode 1229. 安排会议日程
  17. java applet 淘汰_java – 替代applet的替代技术?
  18. 竞赛通知|首届工业数字孪生大赛
  19. 基于JAVA+SpringMVC+Mybatis+Vue+MYSQL的高校企业员工公寓后勤管理系统
  20. 微信小程序开发基础知识1(黑马)

热门文章

  1. 项目管理学习总结(15)——技术负责人所需的四个核心能力
  2. JavaWeb的架构
  3. DO、DTO和VO分别是什么?
  4. 【原创】C#玩高频数字彩快3的一点体会
  5. 如何用计算机记英语词汇,计算机常用英语词汇大全
  6. 去掉数组中重复出现元素的算法
  7. java的基本数据类型有什么特点,java八大基本数据类型
  8. inux中,如何把一个目录及其子目录中的读写权限交给一个普通用户!
  9. 中忻嘉业:抖音小店主要引流玩法
  10. Configuring incomplete, errors occurred!