c语言基础笔记DAY1
1.GCC编译时 常用 win命令
- cd :跳转到指定文件夹,但不可跳转盘符
- cd /d :跳转盘符,跳转到指定文件夹
cd /d c:/windows
- dir :查看当前 目录下的文件
- cls :清屏
- 一步编译法1: gcc hello.c -o hello.exe
- 一步编译法2: gcc c:/a/hello.c -o hello.exe
- 一步编译法3: gcc c:/a/hello.c -o c:/a/hello.exe
2.c语言编译命令
-
预处理: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 -
-E 只进行预处理
-S(大写) 只进行预处理和编译
-c(小写) 只进行预处理、编译和汇编
-o file 指定生成的输出文件名为 file -
.c C 语言文件
.i 预处理后的 C 语言文件
.s 编译后的汇编文件
.o 编译后的目标文件
3.编译过程详解
预处理
- 带#的语句就是预处理指令,预处理指令在预处理的时候处理了
- 头文件展开: #include <stdio.h> 包含文件stdio.h(预处理时将stdio.h 文件拷贝至预处理文件中)
- 删除注释: 注释有两种方法: // /* */
- 宏替换: #define 代表是声明一个宏, 在预处理时会将宏给替代
- 预处理时 不会检查语法错误
- 条件编译: 条件不成立: #if 0 -> #endif 条件成立 #if 1 -> #endif
编译
- 将预处理文件编译生成汇编文件
- 检查语法错误
汇编
- 将汇编文件编译生成二进制文件.o
链接
- 设置运行环境,堆栈等,链接其他库
4.system 库函数
作用: 在程序中启动另一个程序
参数: 要的是待启动程序的路径名
5.寄存器 缓存 cpu 内存之间的关系
cpu > 寄存器 > 缓存 > 内存