#include <stdio.h>
int main()
{
printf("hello world");
return 0;
}
一段简短的代码带我走入了这个未知的世界.我的老师对我说的第一句话 也是 hello world,
而且现在这个 hello world 对我来说 就好像 刚会说话的时候 叫的第一声爸爸妈妈一样;
but, hello world 正如 为什么我要叫这个人 爸爸 妈妈一样, 他的背后你又知道多少呢?
- 程序为什么要被编译器编译之后才能运行?
- 编译器在把 C 语言程序转换成可以执行的机器码的过程中做了什么,怎么做的?
- 最后编译出来的可执行文件里面是什么?除了机器码还有什么?他们怎么存放的?怎么组织的?
- 井include <stdio.h>是什么意思? 把 stdio.h 包含进来意味着什么? C 语言库又是什么? 它是怎么实现的?
- 不同的编译器(microsoft VC, GCC)和不同的硬件平台(x86, SPARC, MIPS, ARM).以及不同的操作系统(Windows, Linux, UNIX, Solaris),最终编译出来的结果一样吗?为什么?
- hello world 程序是怎样运行起来的? 操作系统是怎么装载它的?它从哪开始执行,到哪结束?main 函数之前发生了什么? main 函数结束之后又发生了什么?
- 如果没有操作系统, hello world 可以运行吗? 如果要在一台没有操作系统的机器上运行 hello world 需要什么? 应该怎么实现?
- printf 是怎么实现的? 它为什么可以有不定量的参数? 为什么他能够在终端上输出字符串?
- hello world 程序在运行时他在内存中是什么样子的?
好吧,就非计算机专业的我而言,这些问题我一个都答不上来,所以此书读感就由此而来了,
上述问题 在我的开发生涯中会一一补充答案,我想如果凭借我自己的只是回答出这些问题,那时候我可以再来看看我这些年写过的东西.
网友评论