/*main.c*/
void swap();
int buf[2]={1,2};
int main(){
swap();
return 0;
}
/*swap.c*/
extern int buf[];
int *bufp0=&buf[0];
int *bufp1;
void swap(){
int temp;
bufp1=&bufp[1];
temp=*bufp[0];
*bufp0=*bufp1;
*bufp1=temp;
}
1.C预处理器(cpp)将源程序main.c翻译成一个ASCII码的中间文件main.i
2.C编译器(ccl)将main.i翻译成一个ASCII汇编语言文件main.s
3.汇编器as将main.s翻译成一个可重定位目标文件(relocateble object file)main.o
//相同过程生成swap.o
4.连接器程序ld将main.o和swap.o以及一些必要的系统目标文件组合起来,创建一个可执行目标文件
5.当我们用类似unix>./p运行可执行文件p时,加载器拷贝p中的代码和数据到存储器,然后将转移控制转移到这个程序的开头