C语言基础day1
分步编译 | 命令如下 |
---|---|
预处理: | 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 |
1、c语言的编译过程
预处理:带#的语句就是预处理指令,预处理指令在预处理的时候处理它
- 头文件展开:#include<stdio.h>包含文件stdio.h(预处理时将stdio.h文件拷贝至预处理文件中)
- 删除注释:注释有两种方法:// /**/
- 宏替换:#define 代表声明一个宏,在预处理的时候替换宏 (#define PI 3.1415)
- 预处理时 不会检查语法错误
- 条件编译: 条件不成立:#if 0 #endif
条件成立 #if 1 #endif
(#if adb #endif 则gcc -E hello.c -o hello.i -Dabc就成立)
编译:将预处理文件编译生成汇编文件
检查语法错误
汇编:将汇编文件编译生成二进制文件.o
链接:设置运行环境,堆栈等,链接其他库
System函数
作用:在程序中启动另一个程序
参数:要的是待启动程序的路径名
程序:
//system启动程序,如果这个程序系统可以找到,不用加路径
//如果环境变量找不到,需要加路径
//eg.system(C:\hello.exe)
结果
system(“pause”);暂停程序执行