一. "hello word!"的生成
编写->编译->链接->生成
二. 函数的执行与结束
main()->调用printf()->调用操作系统API->操作系统进行相应执行,执行完成返回函数->return;
printf()在哪?做了些什么?
printf()在链接时,被从库中调出,并在经过程序链接器时与代码链接装配到一起。
原程序调用printf函数,并将“hello,world!!”字符串数据传给printf函数,printf函数将该字符串复制到一个内存缓冲区中,然后调用操作系统提供的API(应用程序编程接口)函数。
操作系统API如何被调用?都做了什么?
一旦程序调用了操作系统API,代码的控制权就交给了操作系统,执行的也是操作系统的代码。操作系统会根据不同的API函数以及应用程序传递进来的参数完成不同的动作和功能。
程序中的printf()调用的API和传递的参数,是要告诉操作系统把它缓冲区中的数据写入标准输出设备上。经过操作系统的相关执行,我们在屏幕上就看到了hello,world!,然后程序就逐层返回到main函数,最后main函数退出,这个小程序也就结束了。
完结。。。