在Windows下,可执行程序(Executable Program)大部分是 .exe 程序,它是一系列计算机指令和数据的集合。这些指令都是二进制形式的,CPU可以直接识别,毫无障碍;但是对于程序员,它们非常晦涩,难以记忆和使用。

计算机发展初期,程序员就是使用这些二进制形式的CPU指令来编写程序的。

直接使用CPU指令编程对程序员来说简直是噩梦,尤其是当程序比较大的时候,不但编写麻烦,需要频繁查询指令手册,而且除错会异常苦恼,要直接面对一堆二进制数据,让人眼花缭乱。另外,用CPU指令编程步骤繁琐,要考虑各种边界情况和底层问题,开发效率十分低下。

这就倒逼程序员开发出了编程语言,提高自己的生产力;例如汇编、C语言、C++、Java、Python、Go语言等,都是在逐步提高开发效率。至此,编程终于不再是只有极客能做的事情了,不了解计算机的读者经过一定的训练也可以编写出有模有样的程序。

什么是编译器

C语言代码由固定的词汇按照固定的格式组织起来,简单直观,程序员容易识别和理解,但是对于CPU,C语言代码就是天书,根本不认识,CPU只认识几百个二进制形式的指令。这就需要一个工具,将C语言代码转换成CPU能够识别的二进制指令,也就是将代码加工成 .exe 程序;这个工具是一个特殊的软件,叫做编译器(Compiler)。

编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)。

C语言的编译器有很多种,不同的平台下有不同的编译器,例如:

Windows 下常用的是微软开发的cl.exe,它被集成在 Visual Studio 或 Visual C++ 中,一般不单独使用;

Linux 下常用的是 GUN 组织开发的 GCC,很多 Linux 发行版都自带 GCC;

Mac 下常用的是 LLVM/Clang(以前是 GCC,后来由于 GCC 的不配合才改为 LLVM/Clang)。

你的代码语法正确与否,编译器说了才算,我们学习C语言,从某种意义上说就是学习如何使用编译器,让编译器生成可执行程序(例如 Windows 下的 .exe 程序)。

编译器可以100%保证你的代码从语法上讲是正确的,因为哪怕有一点小小的错误,编译也不能通过,编译器会告诉你哪里错了,便于你的更改。

选择合适的IDE

实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如编辑器、调试器、文件管理等,这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、Code::Blocks、C-Free 等,它们统称为IDE(Integrated Development Environment,集成开发环境)。

1) Windows

Windows 下的 IDE 比较多,我推荐使用 Visual Studio 或者 Dev C++;如果你的操作系统是 XP 或者 Win7,你也可以使用 C-Free。另外,国内很多高校还在使用 Visual C++ 6.0,把它作为C语言教学的工具。

① Visual C++ 6.0(简称VC 6.0)是微软开发的一款经典的IDE,很多高校都以 VC 6.0 为教学工具来讲解C和C++。但VC 6.0是1998年的产品,很古老了,在 Win7、Win8、Win10 下会有各种各样的兼容性问题,甚至根本不能运行,所以不推荐使用。

② Visual Studio(简称VS)是 Visual C++ 6.0 的升级版,增加了很多新特性,支持了更多的语言,是 Windows 下的标准 IDE,实际开发中大家也都在使用。不过 VS 有点庞大,安装包有2~3G,下载不便,而且会安装很多暂时用不到的工具,安装时间在半个小时左右。

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

③ Dev C++ 是一款免费开源的 C/C++ IDE,内嵌 GCC 编译器(GCC 编译器的 Windows 移植版),是 NOI、NOIP 等比赛的指定工具。Dev C++ 的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。

NOI 是National Olympiad in Informatics的缩写,译为“全国青少年信息学奥林匹克竞赛”;NOIP 是National Olympiad in informatics in Provinces的缩写,译为“全国青少年信息学奥林匹克联赛”。NOI、NOIP 都是奥林匹克竞赛的一种,参加者多为高中生,获奖者将被保送到名牌大学或者得到高考加分资格。

④ C-Free 是一款国产的 Windows 下的C/C++ IDE,最新版本是 5.0,整个软件才 14M,非常轻巧,安装也简单,界面也比 Dev C++ 漂亮。C-Free 的缺点也是调试功能弱。

可惜的是,C-Free 已经多年不更新了,组件都老了,只能在 XP、Win7 下运行,在 Win8、Win10 下可能会存在兼容性问题,所以我才重点推荐 Dev C++,否则我会更加倾向于 C-Free。

本教程的目录中只列出了 VS2010、VS2015、Dev C++ 的安装和使用,希望尝试 C-Free 和 VC 6.0 读者请猛击《在C-Free下运行C语言程序》《在VC6.0下运行C语言程序》。

2) Linux

在 Linux 下使用GCC(GNU Compiler Collection,GNU编译器套件)。GCC是GUN组织开发的自由软件,除了支持C,还支持C++、Java、Objective-C等,它是Linux平台编译器的事实标准。

3) Mac OS X

在 Mac OS X 下使用 Xcode。Xcode 是由 Apple 官方开发的IDE,支持C、C++、Objective-C、Swift 等,可以用来开发 Mac OS X 和 iOS 上的应用程序。Xcode 最初使用 GCC 作为编译器,后来由于 GCC 的不配合,改用 LLVM/Clang。

虽然C语言的 IDE 众多,但是C语言的绝大部分内容在各个 IDE 下都是通用的。

接下来的几节我们会讲解各种 IDE 的使用,也即如何在 Windows、Linux、Mac OS X 下运行C语言程序。

如果读者还未配备一台电脑,或者当前不方便使用电脑,也可以在手机上运行C语言程序,这将在《在手机上运行C语言程序》一节中详细讲解。

c语言编译器IDE有iOS,C语言编译器和IDE的选择相关推荐

  1. ios上编译c语言的app_CppCode –适用于IOS的免费C / C ++ IDE和编译器

    ios上编译c语言的app CppCode is an awesome offline C/C++ ide and compiler for ios platform. Using this you ...

  2. 一篇文章看懂有关iOS开发语言的一切!

    看什么看!点我呀!全栈程序员,免费入门到精通! 作者丨开发之家 https://www.jianshu.com/p/1fd231cfe54b 前言 iOS开发语言有哪些?OS开发语言主要包括什么?iO ...

  3. 嵌入式C语言自我修养:从芯片、编译器到操作系统-习题、笔记

    前沿 C语言测试(1):基本概念考查 什么是标识符.关键字和预定义标识符? 三者有何区别? 标识符(Identifier):由程序员定义,用来表示变量,包括了变量名.函数名.宏名.结构体名等. 标识符 ...

  4. iOS多语言解决方案全面指南

    本文以及相关工具和代码旨在为已上线的iOS项目提供一种快速支持多语言的解决方案.由于文案显示是通过hook实现的,因此对App的性能有一定影响:除了特殊场景的文案显示需要手动支持外,其他任务均已实现自 ...

  5. keil c语言编译运行,Keil的c语言编译器

    我曾经通过查看反汇编代码对KEILC编译器进行了测试,大概有这么一下内容,也得出一些结论. (1)全局变量:如果程序中定义了全局变量,而且初始值不是0.此时,在程序调到main()函数执行前,除了要进 ...

  6. c语言分支和循环总结,C语言 ---- 循环分支 iOS学习-----细碎知识点总结

    #import   // #import是OC种的导入头文件或者是系统框架的指令 // 定义了一个Season枚举类型 enum Season { Spring = 1, // 值默认是从0开始,后面 ...

  7. iOS - 实现语言本地化/国际化

    实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家 ...

  8. c语言编译程序的软件下载,c语言编译器(wintc)

    c语言编译器(wintc)是一款针对c语言编译的开发工具.c语言编译器(wintc)支持Windows平台开发程序,这款软件利用TC2为内核,提供了Windows平台的开发界面.这款具编译器具有语法加 ...

  9. 【HBuilderX】预编译器错误:代码使用了scss/sass语言,但未安装相应的编译器插件,请前往插件市场安装该插件:

    [HBuilderX]预编译器错误:代码使用了scss/sass语言,但未安装相应的编译器插件,请前往插件市场安装该插件: 一.报错 二.报错原因 三.解决办法 一.报错 预编译器错误:代码使用了sc ...

  10. 预编译器错误:代码使用了less语言,但未安装相应的编译器插件,请前往插件市场安装该插件

    问题002:预编译器错误:代码使用了less语言,但未安装相应的编译器插件,请前往插件市场安装该插件 [编译错误] 使用HBUilderX编译运行时出现 [解决过程] 选择 "工具–插件安装 ...

最新文章

  1. 大数据调度平台Airflow(三):Airflow单机搭建
  2. AbstractFactory抽象工厂模式
  3. php curl异步跳转,php curl批处理--可控并发异步
  4. leetcode算法题--将一维数组转变成二维数组
  5. 爬虫+数据分析,制作一个世界疫情人数增长动态柱状竞赛图2
  6. linux 添加虚拟网卡
  7. vue 后台获取数据 下拉框_Vue开发中的一些常见套路和技巧
  8. 【java】【乱码】Java 读取本地 UTF8 txt文件乱码处理
  9. 将vue项目打包部署到云服务器(傻瓜式宝塔面板)
  10. 利用自定义事件实现不同窗体间的通讯 -- C#篇
  11. 简述ip地址的abc类如何划分_IP地址的ABC类划分
  12. 有限元计算计算机配置,有限元分析计算对电脑配置有什么要求
  13. OI中常见的数学符号
  14. html之简单新闻网制作
  15. 被SCI收录的火灾方向的期刊
  16. java linux常用命令_Linux常用命令
  17. Hive之窗口函数(partition) / order by / row_number / date_sub 等函数联合使用案例(9)
  18. PHP导入(百万级)Excel表格数据
  19. 阅读论文《The Perception-Distortion Tradeoff》
  20. ora-01407 无法更新 值 为null

热门文章

  1. 乞讨网站,要饭网,个人要饭网,在线要饭网站;含socket 通信;双端支付源码 ;源码
  2. 使用前端技术实现静态图片局部流动效果
  3. Java网上商城系统_JavaWeb源码网上商城系统
  4. 《Go语言圣经》阅读笔记:第三章基础数据类型
  5. 小米浏览器 解析html5,JavaScript - 判断当前用户使用的浏览器
  6. JS 页面跳转,参数的传递
  7. Tomcat6 无法登陆Tomcat Manager
  8. GD32创建工程与启动文件选择
  9. R语言-数据包络分析法--DEA模型
  10. 学编程必备:3 大编程字体!让你在编程的时候原地起飞!