看到Hello,world!我想哭,也想笑。
我想到八九十年代学习英语的并且现在都混得不错的人,当他们看到美洲狮时,也会有这样的感受吧,因为当时他们自学的是《新概念英语》,第一课就是《The puma》。
而每一个学习程序的人,看到的第一个程序,也是最最最最经典的程序就是“Hello,world!”。
敬畏的源代码如下:
#include<stdio.h>
void main()
{
printf("Hello,world!");
return 0;
}
首先,先不介绍它的哲学意义(它有极其重要的哲学意义),这里仅仅分享一下它的程序意义。
它是最简单的一个程序,也是最复杂的一个程序。
说它简单,任何人都可以在一分钟之内学会写它;说它复杂,而真正能够回答以下这几个问题的人并不多。
看这几个问题:
1) 编译器在把C语言程序转换成可以执行的机器代码过程中做了什么?怎么做了?
2) 最后编译出来的可执行文件里面是什么?它们是怎么存放的?怎么组织的?
3) C语言库又是什么?它是怎么实现的?
4) 不同的编译器和不同的硬件平台及不同的操作系统,最终编译出来的结果是一样么?为什么?
5) 此程序是怎么运行的?怎么装载?从哪里开始?
6) 如果没有操作系统,此程序还能运行么?如果在一个没有装操作系统的机器上运行,怎么运行?应该怎么实现?
7) printf为什么能在终端输出字符?
8) Hello,world!在运行时,它在内存中是什么样子的?
……
感谢这些问题,它把一个人带入了技术背后的内幕这个行业!