最易懂的C语言初阶教程——初识C语言
前言本系列教程主打简单易懂会尽量减少专业名词多用故事、实例来讲解 C 语言的逻辑。我会把 C 语言知识点拆分成一篇篇独立文章而非按传统章节划分。每篇内容相互独立如果你已经掌握了某个知识点可以直接跳过对应文章。什么是c语言c语言是一种计算机语言就像我们和外国人对话要学英语法语等语言一样我们和计算机对话就要学c语言。很多时候我们可以看到有些人将c语言称为高级语言那什么是高级语言呢什么是汇编语言呢什么是机器语言怎么更好地理解高级语言、汇编语言和机器语言举个例子有一天你想向外国友人表达及时补救、为时未晚的意思脱口而出 “亡羊补牢”。翻译会先将其解读为 “遭受损失后采取补救措施”再翻译成 “Take remedial measures after suffering a loss” 传达给对方。其中你所说的成语 “亡羊补牢”可以看作高级语言C 语言表达精练易懂翻译的解读过程相当于汇编语言最终的英文则对应机器语言。相信大家也能发现翻译的解读方式并非唯一也可以将其理解为 “改过不嫌晚”再翻译成更简洁地道的 “Its never too late to mend”。因此我们编写的 C 语言代码可能会被编译成不同的机器语言但无需担心它们表达的含义与执行效果通常是一致的。现实生活中我们和外国友人交流需要一个翻译软件那么C语言程序是怎么让计算机知道我们在表达什么呢这里引入C语言的编译过程这里有三种不同后缀的文件其中源程序就像是我们写给计算机的信而编译和链接的过程就相当于对这封信进行解读与翻译最终生成的可执行文件就是翻译完成后、计算机能够直接读懂的信件。当然其中编译和链接是由独立的工具实现的。编译器是把程序员写的 C 语言或其他高级语言源代码翻译成计算机能直接识别、执行的机器码0 和 1 的二进制指令的专用程序它会把c语言源码一次性翻译成完整的可执行文件后续运行这个程序时不需要编译器参与。比如 Windows 下的.exe单片机中的.bin链接器是编译器的核心组成部分之一,负责将编译生成的目标文件和库文件、启动代码等组合为可执行文件。其中目标文件.o/.obj** 只是零散的机器码片段既没法独立运行还依赖C 标准库 / 第三方库库文件的现成代码比如遇到成语需要查字典进行注释而库就相当于字典链接器的工作就相当于翻译员在翻译的过程中查字典并将字典中内容进行注释的过程。每个语言都有自己的标准化c语言也不例外在学习和使用c语言的时候大家可能经常听C89、C90、C99、C11这些标准对 C语言的语法、库函数等做出了明确的规定而标准库和第三方库就如同我们使用的字典一样在成语字典中找想用的成语也可以在C89库中找自己需要的库函数。而C89、C90、C99、C11这四个只是不同的版本用那个版本一般看项目需要那个版本然后到对应版本下的库里找需要的函数即可。