首页 > 其他分享 >主流C语言编译器大全(新手必看)

主流C语言编译器大全(新手必看)

时间:2025-01-03 21:01:57浏览次数:3  
标签:必看 Visual C++ C语言 编译器 Clang IDE

目录

C语言编译器

桌面操作系统下的编译器

嵌入式系统下的编译器

C语言主流IDE大全

Windows 下如何选择 IDE?

1) Visual Studio

2) Dev C++

3) Visual C++ 6.0

4) Code::Blocks

5) Turbo C

6) C-Free

Linux 下如何选择 IDE?

Mac OS 下如何选择 IDE?


C语言编译器

由于 C语言的历史比较久,而且早期没有规范,整个计算机产业也都处于拓荒的年代,所以就涌现了很多款 C语言编译器,它们各有特点,适用于不同的平台,这篇文章就来给大家科普一下。

我分两部分介绍 C语言的编译器,分别是桌面操作系统和嵌入式操作系统。

桌面操作系统下的编译器

对于当前主流桌面操作系统而言,可使用 Visual C++、GCC 以及 LLVM Clang 这三大编译器。

Visual C++(简称 MSVC)是由微软开发的,只能用于 Windows 操作系统;GCC 和 LLVM Clang 除了可用于 Windows 操作系统之外,主要用于 Unix/Linux 操作系统。

像现在很多版本的 Linux 都默认使用 GCC 作为C语言编译器,而像 FreeBSD、macOS 等系统默认使用 LLVM Clang 编译器。由于当前 LLVM 项目主要在 Apple 的主推下发展的,所以在 macOS 中,Clang 编译器又被称为 Apple LLVM 编译器。

MSVC 编译器主要用于 Windows 操作系统平台下的应用程序开发,它不开源。用户可以使用 Visual Studio Community 版本来免费使用它,但是如果要把通过 Visual Studio Community 工具生成出来的应用进行商用,那么就得好好阅读一下微软的许可证和说明书了。

而使用 GCC 与 Clang 编译器构建出来的应用一般没有任何限制,程序员可以将应用程序随意发布和进行商用。

MSVC 编译器对 C99 标准的支持就十分有限,加之它压根不支持任何 C11 标准,所以本教程中设计 C11 的代码例子不会针对 MSVC 进行描述。所幸的是,Visual Studio Community 2017 加入了对 Clang 编译器的支持,官方称之为——Clang with Microsoft CodeGen,当前版本基于的是 Clang 3.8。

也就是说,应用于 Visual Studio 集成开发环境中的 Clang 编译器前端可支持 Clang 编译器的所有语法特性,而后端生成的代码则与 MSVC 效果一样,包括像 long 整数类型在 64 位编译模式下长度仍然为 4 个字节,所以各位使用的时候也需要注意。

为了方便描述,本教程后面涉及 Visual Studio 集成开发环境下的 Clang 编译器简称为 VS-Clang 编译器。

嵌入式系统下的编译器

而在嵌入式系统方面,可用的 C语言编译器就非常丰富了,比如:

  • 用于 Keil 公司 51 系列单片机的 Keil C51 编译器;
  • 当前大红大紫的 Arduino 板搭载的开发套件,可用针对 AVR 微控制器的 AVR GCC 编译器;
  • ARM 自己出的 ADS(ARM Development Suite)、RVDS(RealView Development Suite)和当前最新的 DS-5 Studio;
  • DSP 设计商 TI(Texas Instruments)的 CCS(Code Composer Studio);
  • DSP 设计商 ADI(Analog Devices,Inc.)的 Visual DSP++ 编译器,等等。

通常,用于嵌入式系统开发的编译工具链都没有免费版本,而且一般需要通过国内代理进行购买。所以,这对于个人开发者或者嵌入式系统爱好者而言是一道不低的门槛。

不过 Arduino 的开发套件是可免费下载使用的,并且用它做开发板连接调试也十分简单。Arduino 所采用的C编译器是基于 GCC 的。

还有像莓派(Raspberry Pi)这种迷你电脑可以直接使用 GCC 和 Clang 编译器。此外,还有像 nVidia 公司推出的 Jetson TK 系列开发板也可直接使用 GCC 和 Clang 编译器。树莓派与 Jetson TK 都默认安装了 Linux 操作系统。

在嵌入式领域,一般比较低端的单片机,比如 8 位的 MCU 所对应的C编译器可能只支持 C90 标准,有些甚至连 C90 标准的很多特性都不支持。因为它们一方面内存小,ROM 的容量也小;另一方面,本身处理器机能就十分有限,有些甚至无法支持函数指针,因为处理器本身不包含通过寄存器做间接过程调用的指令。

而像 32 位处理器或 DSP,一般都至少能支持 C99 标准,它们本身的性能也十分强大。而像 ARM 出的 RVDS 编译器甚至可用 GNU 语法扩展。

下图展示了上述C语言编译器的分类。

C语言编译器的分类

C语言主流IDE大全

实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如:

  • 编辑器:用来编写代码,并且给代码着色,以方便阅读;
  • 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程;
  • 调试器:观察程序的每一个运行步骤,发现程序的逻辑错误;
  • 项目管理工具:对程序涉及到的所有资源进行管理,包括源文件、图片、视频、第三方库等;
  • 漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。

这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、C-Free、Code::Blocks 等,它们统称为集成开发环境(IDE,Integrated Development Environment)。

集成开发环境就是一系列开发工具的组合套装。这就好比台式机,一个台式机的核心部件是主机,有了主机就能独立工作了,但是我们在购买台式机时,往往还要附带上显示器、键盘、鼠标、U盘、摄像头等外围设备,因为只有主机太不方便了,必须有外设才能玩的爽。

集成开发环境也是这个道理,只有编译器不方便,所以还要增加其他的辅助工具。在实际开发中,我一般也是使用集成开发环境,而不是单独地使用编译器。

C语言的集成开发环境有很多种,尤其是 Windows 下,多如牛毛,初学者往往不知道该如何选择,本节我们就针对 Windows、Linux 和 Mac OS 三大平台进行讲解。

Windows 下如何选择 IDE?

Windows 下的 IDE 多如牛毛,常见的有以下几种。

1) Visual Studio

Windows 下首先推荐大家使用微软开发的 Visual Studio(简称 VS),它是 Windows 下的标准 IDE,实际开发中大家也都在使用。

为了适应最新的 Windows 操作系统,微软每隔一段时间(一般是一两年)就会对 VS 进行升级。VS 的不同版本以发布年份命名,例如 VS2017 是微软于 2017 年发布的,VS2019 是微软于 2019 年发布的。

不过 VS 有点庞大,安装包有 2~3G,下载不方便,而且会安装很多暂时用不到的工具,安装时间在半个小时左右。

截止到目前,VS 最新的版本是 VS2022。对于初学者,我不建议使用 VS2015 以前的版本,推荐安装较新版本的 VS,比如 VS2019,喜欢尝鲜的读者还可以选择 VS2022。

2) Dev C++

如果你讨厌 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) Code::Blocks

Code::Blocks 是一款开源、跨平台、免费的 C/C++ IDE,它和 Dev C++ 非常类似,小巧灵活,易于安装和卸载,不过它的界面要比 Dev C++ 复杂一些,不如 Dev C++ 来得清爽。

5) Turbo C

Turbo C 是一款古老的、DOS 年代的C语言开发工具,程序员只能使用键盘来操作 Turbo C,不能使用鼠标,所以非常不方便。但是 Turbo C 集成了一套图形库,可以在控制台程序中画图,看起来非常炫酷,所以至今仍然有人在使用。

6) C-Free

C-Free 是一款国产的 Windows 下的C/C++ IDE,最新版本是 5.0,整个软件才 14M,非常轻巧,安装也简单,界面也比 Dev C++ 漂亮。C-Free 的缺点也是调试功能弱。可惜的是,C-Free 已经多年不更新了,组件都老了,只能在 XP、Win7 下运行,在 Win8、Win10 下可能会存在兼容性问题。

下面我给出了各种 IDE(含不同版本)的下载地址、安装方法以及使用教程,并以红色字体附带了建议。

Linux 下如何选择 IDE?

Linux 下可以不使用 IDE,只使用 GCC 编译器和一个文本编辑器(例如 Gedit)即可,这样对初学者理解C语言程序的生成过程非常有帮助,请参考:Linux GCC简明教程(使用GCC编写C语言程序)

当然,如果你希望使用 IDE,那么可以选择 CodeLite、Code::Blocks、Anjuta、Eclipse、NetBeans 等。

Mac OS 下如何选择 IDE?

Mac OS 下推荐使用 Apple 官方开发的 Xcode,在 APP Store 即可下载,具体请参见:Xcode简明教程(使用Xcode编写C语言程序)

标签:必看,Visual,C++,C语言,编译器,Clang,IDE
From: https://blog.csdn.net/zdoeo/article/details/144868652

相关文章

  • 单链表的一些操作(c语言):插入头节点、尾节点、删除某个节点
    #include<stdio.h>#include<stdlib.h>structNode{  intdata;  structNode*Next;  /*data*/};typedefstructNodenode;node*Link;// 创建一个新的节点node*CreateNewNode(intdata){  node*NewNode=(node*)malloc(sizeof(node......
  • 外贸人必看!如何通过Facebook快速找到精准客户?
    随着全球化进程的加速,Facebook已经成为外贸企业开拓国际市场的重要阵地。但面对平台上海量的用户和内容,如何高效找到精准客户成了不少外贸人的难题。今天,我们就来分享一套通过Facebook快速找到精准客户的实用方法,干货满满,不容错过!1.找到相关主题的高价值帖子在Facebook上,寻......
  • 信息学奥赛一本通1100金币(C语言代码)
    文章目录一、题目二、代码1.代码一2.代码二一、题目二、代码1.代码一#include<stdio.h>intmain(){intdays;scanf("%d",&days);intsum=0;//记录总的金币数intcountdays=1;intcoin=1;while(days>0){......
  • C语言指针
    一、指针的基本概念 1. 定义 -指针是C语言中的一个重要概念,它是一个变量,其值为另一个变量的地址。简单来说,指针“指向”了内存中的某个位置,这个位置存放着其他变量的值。-例如:cinta=10;int*p;//声明一个指向int类型的指针p=&a;//将指针p指向变量a的地......
  • 自媒体人必看!全面剖析自媒体变现策略
    在当今数字化时代,自媒体行业蓬勃发展,成为许多人展现自我、实现价值的平台。而自媒体的变现渠道也日益丰富,为创作者们提供了更多实现收益的机会。广告变现是最为常见的一种方式。当自媒体账号拥有一定的粉丝量和影响力后,就可以吸引品牌商投放广告。这包括硬广、软广等形式,通过......
  • 2025如何在CTF比赛中取得名次?零基础必看
    在CTF(CaptureTheFlag)比赛中取得好名次,关键在于系统化的学习与实践。下面是提升CTF比赛能力的一些建议和策略:1.基础知识的扎实积累CTF学习路线&工具及题型解析等籽料我已经给大家整理好了,【点这里自取即可】在CTF比赛中,掌握相关基础知识至......
  • 2025如何在CTF比赛中取得名次?零基础必看
    在CTF(CaptureTheFlag)比赛中取得好名次,关键在于系统化的学习与实践。下面是提升CTF比赛能力的一些建议和策略:1.基础知识的扎实积累CTF学习路线&工具及题型解析等籽料我已经给大家整理好了,【点这里自取即可】在CTF比赛中,掌握相关基础知识至关......
  • 2025如何在CTF比赛中取得名次?零基础必看
    在CTF(CaptureTheFlag)比赛中取得好名次,关键在于系统化的学习与实践。下面是提升CTF比赛能力的一些建议和策略:1.基础知识的扎实积累CTF学习路线&工具及题型解析等籽料我已经给大家整理好了,【点这里自取即可】在CTF比赛中,掌握相关基础知识至关......
  • 2025如何在CTF比赛中取得名次?零基础必看
    在CTF(CaptureTheFlag)比赛中取得好名次,关键在于系统化的学习与实践。下面是提升CTF比赛能力的一些建议和策略:1.基础知识的扎实积累CTF学习路线&工具及题型解析等籽料我已经给大家整理好了,【点这里自取即可】在CTF比赛中,掌握相关基础知识至关重......
  • STLG_01_07_程序设计C语言 - 语句与控制流
    1.基本语句1.1表达式语句表达式语句由一个表达式加上分号组成。例如:x=5;、i++;1.2复合语句(块语句)复合语句是由一对大括号 {} 包围的一组语句。复合语句可以包含变量声明、表达式语句等。例如:{intx=5;x=x+1;}1.3空语句空语句只包含一个分号......