【C基础篇】之C语言概述
1. 计算机的结构构成
-
输入:鼠标、键盘…
-
输出:声卡、显卡…
-
中央处理器(CPU):
控制器:帮助CPU获取指令交给运算器;
运算器:负责数据运算;
寄存器:储存cpu用来数据运算;
预取器:从内存中获取程序中的指令;
MMU:虚拟内存映射。
-
内存储器:
Rom(read only memory)
PAM(随机:random access memory)
优点:内存靠”电信号“来储存数据,所以不可持久化
缺点:读写快
-
硬盘
优点:内存靠“磁信号”来储存数据,具有持久化
缺点:读写慢
2. 第一个程序"Hello world"
#include <stdio.h>
// C语言中以#开头的行 称为预处理行 是在预处理阶段处理的
// #include 是包含头文件的关键字
// stdio.h 标准输入输出的头文件 我们的使用的printf就在这个头文件里
//int 函数的返回值类型 先不用管
//main 主函数 是程序的入口 每个程序必须有且仅有一个
//() 里面是main函数的参数 先不用管 ()里面的内容可以不写 但是 ()必须写
//可以写成 int main()
// ()圆括号 []方括号 {}花括号
int main(int argc, const char *argv[])
{
//{}里面包住的部分叫做函数体,就是我们实际要执行的代码
//printf 是系统给我们提供的输出的函数
//功能就是将 "" 内的内容打印到终端 \n 表示换行的意思 就是回车
printf("hello world\n"); //C语言中每条指令结束 都需要加 分号
return 0;//函数的返回值 先不用管
}
//单行注释
/*
多行
注释
*/
#if 0
多行
注释
#endif
3. gcc编译器
-
预处理阶段
-
参数:-S
-
生成文件:xxx.s汇编文件
-
格式:gcc -E xxx.c -o xxx.i
-
使用工具:预处理器(包含在gcc编译集合工具中)
-
完成工作:
1.文件展开(将stdio.h文件内容和源码放在一起)
2.宏名替换成宏值
3.注释替换成空格
4.展开条件编辑
-
-
编译阶段
-
参数:-S
-
生成文件:xxx.s汇编文件
-
工具:编译器(包含在gcc编译集合工具中)
-
使用命令:gcc -S xxx.i -o xxx.s
-
完成工作:
【重点】逐步检查语法错误----整个gcc编译四步骤中最耗时间
将C程序翻译成汇编指令,得到.s汇编文件
-
-
汇编阶段
-
参数:-c
-
生成文件:xxx.o目标文件(二进制)
-
工具:汇编器(包含在gcc编译集合工具中)
-
使用命令:gcc -c xxx.s -o xxx.o
-
完成工作:
进行汇编指令翻译成对应的二进制指令
-
-
链接:
-
参数:无
-
生成文件:xxx.exe可执行文件(二进制)
-
工具:预处理器(包含在gcc编译集合工具中)
-
使用命令:gcc xxx.o -o xxx.exe
-
完成工作:
库引入
合并多目标项目
合并启动例程
-