vi编译器
命令行模式
进入输入模式
特征 | 指令 | 作用 |
---|---|---|
新增 | a | 从光标所在位置后开始输入 |
A | 从光标所在行最后面开始 | |
插入 | i | 光标所在位置前 |
I | 光标所在行的第一个非空字符前 | |
开始 | o | 光标下新增一行 |
O | 光标上新增一行 | |
删除 | s | 删除光标所在字符并进入输入 |
S | 删除光标所在行并进入输入 |
底行模式
特征 | 指令 | 作用 |
---|---|---|
分屏 | vsp /路径/文件名 | 分屏打开另一个文件 |
查找 | s/str | 查找str |
高亮 | noh | 取消高亮 |
替换 | s/str1/str2 | 将当前行的第一个st1替换为str2 |
s/str1/str2/g | 将当前行的全部str1替换为str2 | |
s/str1/str2/g | 将当前行的全部str1替换为str2 | |
1,$ s/str1/str2/g | 将全部str1替换为str2 |
gcc四步编译
(-E -S -c .i .s .o)
- 预处理
展开头文件,删除注释,替换宏定义
gcc -E hello.c -o hello.i - 编译
检查语法错误,如果没有错误,生成汇编文件(.s)
gcc -S hello.i -o hello.s - 汇编
将汇编文件生成为二进制目标文件(.o)
gcc -c hello.s -o hello.o - 链接
链接库文件,生成机器可识别的二进制文件
gcc hello.o -o hello
冯诺依曼模型的特点
- 五大件:存储器,运算器,控制器,输入输出设备
- 指令和数据用二进制表示,存储在存储器中可按地址寻访
- 指令由操作码和地址码组成
- 存储程序(最重要的一点)
- 以运算器和控制器作为计算机结构的中心
进制
- 二进制(BIN)
- 八进制(OCT)
- 十进制(DEC)
- 十六进制(HEX)
变量
存储类型(决定变量的存储位置)
- auto(自动型) :缺省存储类型定义的时候,自动默认auto
- static(静态型):延长生命周期,限制作用域
- extern(外部引用型):当引用同一程序不同文件内的变量时,需加extern修饰
- register(寄存器类型):当变量需要被的多次读取时未提高运行效率,可以定义该类型
数据类型
类型 | 类型名 | 字节数(32位) | 取值范围 |
---|---|---|---|
char | 字符型 | 1字节 | -2^7 ~ 2^7-1 |
short | 短整型 | 2字节 | -2^15 ~ 2^15-1 |
int | 整形 | 4字节 | -2^31 ~ 2^31-1 |
long | 长整形 | 4字节 | 2^31 ~ 2^31-1 |
float | 单精度浮点型 | 4字节 | |
double | 双精度浮点型 | 8字节 |