文章目录
前言(Preface)
本专题主要聚焦于 C。
因为在学习过程中可能会遇到需要使用多种语言的场景。例如 C、C++、Python、Java、Matlab、HTML/CSS、JavaScript/TypeScript 等的基础语法,它们的本质架构是类似的,但又有些区别。对于具体的语法和算法,我会试图用例子来说明不同语言间的实现区别。限于能力,本文不去探究其深层本质,仅仅归纳总结表面的语法现象。
后续都会慢慢更新。不足之处,欢迎在评论区指出。
历史(History)
简述
- C语言的主要设计者为贝尔实验室的D.M. Ritchie。上世纪70年代问世。
- C语言的设计初衷是为了尽可能降低硬件依赖性,从而可以在不同的机器上运行。
- C语言属于编译型语言。面向过程编程。通过编译成二进制机器码运行。
- 优点:代码量小、执行速度快。
- 缺点:代码实现周期长、可移植性差。
应用领域
- 游戏引擎(Unity、 Cocos Creator)
- 操作系统(Windows、 Linux)
- 嵌入式(MCU)
主要版本
- C89(ANSI C):1989年制定,完全支持
- C90(ISO C):1990年制定,完全支持
- C99:1999年制定,部分支持
- C11:2011年制定,并不流行
主流编译器
- GCC:
GNU Compiler Collection
,GNU编译器套件。初衷是为GNU操作系统专门编写,现已被大多数类Unix操作系统采纳为标准的编译器。主要用于编译C和C++。 - LLVM+Clang: 苹果公司发布。编译速度快,内存占用少,诊断信息可读性强
- MSVC:支持Windows系统的编译器,Visual Studio底层所使用的编译器之一。
需要注意的是,一般Linux发行版自带GCC编译器,而Windows默认是没有C/C++编译器的。
MinGW是一个GCC的Windows移植版。可以去官网自行下载,配置C语言的运行环境。
编辑器推荐
- Dev C++:轻量级,新手友好
- Visual Studio:全能型
- Visual Studio Code:简称
VS code
,界面很好看。
总结
C语言是一门经典的语言,同时也是学习C++的基础,至今仍有大量应用。