1. C语言的介绍
- C语言是一门编译型的计算机语言,C语言的源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。
2. C语言的执行过程
- C语言代码是放在.c为后缀的文件中的,要得到中间运行的可执行程序,中间要经过编译和链接两个过程。
- 每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件)
- 多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe为后缀的文件)
3. 编译
- 任务:编译主要处理单个源文件,将高级的C语言代码转化为机器可以理解的目标代码。它会检查源文件的语法错误、进行词法分析、语法分析和语义分析,然后生成对应的的目标文件(.obj)。
- 作用范围:局限于单个源文件内部。比如有 test.c 和 add.c 两个源文件,编译时 test.c 的编译过程不依赖 add.c 的具体实现,只关注自身代码的正确性。
4. 链接
- 任务:链接是把编译生成的多个目标文件(.obj文件)以及所需的库文件组合成一个可执行文件。它的主要工作是解析目标文件中的符号引用(比如函数调用和变量引用),找到这些符号在其他目标文件或库中的定义,并将它们正确连接在一起。
- 作用范围:涉及多个目标文件以及库文件(链接库)之间的关联。例如,test.c 中调用了 add 函数, add 函数在 add.c 中定义,编译后生成 test.obj 和 add.obj,链接时会将 test.obj 中对 add 函数的调用与 add.obj 中 add 函数的实现关联起来。
5. 库文件(标准库和第三方库)
- 标准库
1. 输入输出库: <stdio.h> ,提供如 printf (格式化输出到标准输出)、 scanf (格式化从标准输入读取数据)等函数。
2.字符串处理库: <string.h> ,包含 strcpy (字符串复制)、 strcmp (字符串比较)、 strlen (计算字符串长度)等函数。
3.数学库: <math.h> ,提供 sqrt (计算平方根)、 sin (正弦函数)、 cos (余弦函数)、 pow (幂运算)等数学相关函数。
4.标准库函数通用工具库: <stdlib.h> ,包含 malloc (动态内存分配)、 free (释放动态分配的内存)、 atoi (将字符串转换为整数)等函数。
5.时间日期库: <time.h> ,有 time (获取当前时间)、 localtime (将时间转换为本地时间结构)、 strftime (格式化时间为字符串)等函数。
- 第三方库