想了解一些计算机底层的知识,于是买了本《程序员的自我修养》,耐着性子看了一遍,好像是看明白了,原来是这么回事啊,合上书,书上咋说来着。凉凉!!!
我想一定是方法有问题,于是打算再看一遍,这次看书,要带着10问题,也是书中开篇提到。
1、程序为什么要在编译器编译之后才可以运行?
2、编译器在把C语言程序转换成可执行的机器码的过程中做了什么,怎么做的?
3、最后编译出来的可执行文件里面是什么?除了机器码,还有什么?他们怎么存放的,怎么组织的?
4、#include<stdio.h>是什么意思?把stdio.h包含进来意味着什么?C语言库又是什么?它怎么实现的?
5、不同的编译器(Microsoft VC、GCC)和不同硬件平台(x86、SPARC、MIPS、ARM),以及不同的操作系统(Windows、Linux、UNIX、Solaris),最终编译出来的结果一样么?为什么?
6、Hello World程序是怎么运行起来的?操作系统是怎么装载它的?从哪开始执行,到哪结束?main函数之前发生了什么?main函数之后又发生了什么?
7、如果没有操作系统,Hello World 可以运行么? 如果要在一台没有操作系统的机器上运行Hello World需要什么?应该怎么实现?
8、printf是怎么实现的?它为什么可以有不定数量的参数?为什么它能够在终端上输出字符串?
9、Hello World程序在运行时,它在内存中是什么样子的?
10、了解以上这些内容,对我们有什么帮助?(自己加的)
后续会一一解答上面的问题。
原文地址:https://www.cnblogs.com/ITgaozy/p/9403797.html
时间: 2024-10-09 02:40:49