C语言介绍:
丹尼斯.里奇和肯.汤普逊于1971~1973年在贝尔实验室,在开发UNIX操作系统时,以BCPL语言为基础研发了一款高级编程语言,它是为了开发操作系统而研发的一款编程语言,它特别擅长控制硬件,所以在服务器、驱动编程、单片机、嵌入式使用较多。
优点:语法简单,只有32个关键字,执行速度快能媲美汇编语言的执行速度,也适合用于实现算法。
缺点:学习难度大,需要对内存、操作系统有一定的了解,由于出现的较早个人计算机还没有普及,所以在设计时没有为普通人考虑太多,有一些语法上的陷阱和缺陷,没有大型的软件公司在背后支持,可用的软件库比较少。
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
什么是编译器:
它是一个负责翻译代码的程序,它负责把人类能看懂的代码翻译成计算机能理解的二进制指令,它由预处理器、编译器、汇编器、链接器组成,统称为编译器。
gcc编译器把C代码变成可执行程序的过程:
1、把程序员所编写的代码进行预处理
gcc -E hello.c 把预处理的结果显示到屏幕上
gcc -E hello.c -o hello.i 会生成以.i结尾的预处理文件
2、把预处理的结果翻译成汇编代码
gcc -S hello.i 会生成以.s结尾的汇编文件
3、把汇编代码翻译成二进制指令
gcc -c hello.s 会生成以.o结尾的目标文件
4、把若干个文件目标文件、库文件合并成可执行文件
gcc a.o b.o c.o ... 默认会生成a.out可执行文件,也可以使用-o指定可执行文件的名字。
gcc a.o b.o c.o -o hello
./hello 执行程序,也可以编译执行:gcc a.o b.o c.o && ./a.out
注意:gcc hello.c 就包含了以上四个步骤,了解这个步骤是我们后续学习预处理指令、多文件编程、静态库、动态库的基础。