Skip to content

入门

历史

C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。

特点

  • 设计特性
  • 高效性
  • 可移植性
  • 强大灵活
  • 面相过程

应用范围

  • 操作系统
  • 嵌入式系统
  • 应用软件
  • 游戏开发

语言标准

  • C89:奠定了现代C语言基础
  • C99:最重要的功能扩展
  • C11:稳定性和安全性增强

编译与执行过程

  • 预处理
  • 编译
  • 汇编
  • 链接

第一个C程序

输出Hello World!

c
#include <stdio.h>
int main(){
    printf("Hello World!");
    return 0;
}

总结

  • C语言既不是汇编语言,也不是高级语言,而是一种通用的中级语言。
  • C语言编译过程就是源代码经过预处理、编译、汇编和链接四个阶段,最终转换为可执行文件。
  • 可执行文件是"完整独立的产品",而源文件和目标文件是"生产过程中的中间产物"。

1. 程序语言

1.1 机器语言

低级语言,0和1组成的二进制代码,计算机直接识别。

1.2 汇编语言

面向机器的程序设计语言,用英文和字符代替二级制代码。

1.3 高级语言

语法类似英文,贴近自然语言。

5. 第一个C程序

6. 编译过程

6.1 编译步骤

C代码编译成可执行程序经过4步:

  1. 预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
  2. 编译:检查语法,将预处理后文件编译生成汇编文件
  3. 汇编:将汇编文件生成目标文件(二进制文件)
  4. 链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

![](file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml12536\wps27.jpg)

6.2 编译指令

GCC命令
预处理:gcc -E hello.c -o hello.i
编  译:gcc -S hello.i -o hello.s
汇  编:gcc -c hello.s -o hello.o
链  接:gcc hello.o -o hello
一步编译:gcc hello.c -o hello

选项含义
-u file指定生成的输出文件名为file
-E只进行预处理
-S只进行预处理和编译
-c只进行预处理、编译和汇编
文件后缀含义
.cC 语言文件
.i预处理后的 C 语言文件
.s编译后的汇编文件
.o编译后的目标文件

5.代码分析

代码含义
#include<stido.h>包含stdio.h这个头文件
main()函数主函数,有且只有一个,是C语言程序的入口,程序是从main函数开始执行,
{}代码块,一个代码块内部可以有一条或者多条语句,每句以分号结尾
//     /**/行注释与块注释,编译器忽视的内容,用于解释说明代码内容
printf函数C语言库函数,功能是向标准输出设备输出一个字符串
\n回车换行
return语句代表函数执行完毕,返回return代表函数的终止,0代表程序执行成功, -1代表程序执行失败
system函数在已经运行的程序中执行另外一个外部程序

6.编译过程