1 //file: hello.c 2 3 #include <stdio.h> 4 5 int main() { 6 printf("hello,world!\n"); 7 return 0; 8 }
从一个源程序开始:hello.c
- 系统中所有信息都是由一串比特表示
- 只由ASCII字符构成的文件称为文本文件,其他文件都称为二进制文件
源程序hello.c编译过程
编译系统
- 编译过程分为4个阶段完成:预处理器、编译器、汇编器、连接器。
hello.c(源程序)
预处理:预处理器cpp修改源程序,将以字符#开头的代码#include<stdio.h>替换成系统头文件stdio的内容。
编译:编译器ccl 将hello.i 翻译成hello.s 汇编语言程序的文本文件。
汇编:汇编器as将hello.s 翻译成hello.o 机器语言指令(可重定位目标程序的格式)。
链接:hello程序调用了printf 函数,printf函数标准C库的一个函数,存在于printf.o的预编译好的目标文件中,连接器ld将其合并到hello.o程序中得到hello可执行文件。