C专家编程笔记(四)(End)
by adie
2007-07-07 17:33:04
尽管Turing 是一位杰出的理伦家,但当面临实际问题时,他常常显得一无是处。他的不切实际以一种不同寻常的方式表现出来:在他的办公室里,他把啤酒罐拴在散热器上,防止他的同事们使用。他们很自然的把这当作是一种挑战,便撬开锁,恣意饮用。他常常跑十几英里甚至更远去赴一个约会,而不使用公共交通工具,每次总是筋疲力尽,却从不迟到。当1939年欧洲暴发战争的时候, Turing 把他的积蓄换做两个大银块,把它们埋在乡村以保证安全。但战争结束时他却忘了把它们埋在哪里了。最终,Turing 以一种很有个性的不实际的方式自杀:他吃了一个注射了氰化物的苹果。这个以他名字命名的测试理论性强于实践性。理论和实际的区别实际上比理论上想象的还要大。
你是否曾疑惑“a.out”这个名字是怎样确定的? ... 大多数人都有一个模糊的印象,觉得这个名字兼承了 UNIX 传统的简洁性,而且“a”是字母表的第一个字母,所以首先会想到用它来命名新文件。事实上,它是“assembler output(汇编程序输出)”的缩写形式。 ... 使用链接器后,依然沿用了这个命名习惯 ... 使用“a.out”是 UNIX “没有什么理由,但我们就是这样做的”思维的一例!
UNIX 文件系统超级块(supperblock)标识 #define FS_MAGIC 0x011954 Kirk Mekusick 的生日
a.out 文件标识 0407 PDP-11 无条件跳转指令的机器码
可执行文件格式:
ELF Extensiable Linker Format 可扩展链接器格式 Svr4 使用
COFF Common Object-File Format 普通目标文件格式
a.out a.out 格式 BSD Unix 使用
只有短命鬼才需要在幼儿园里就学会一切。
MS-DOS 中 Microsoft C 认可的 PC 内存模型:
small 16 位指针,单个代码段和数据段
large 32 位指针,多个数据段和代码段
medium 32 位函数指针,16 位数据指针,多个代码段和一个数据段
compact 16 位函数指针,32 位数据指针,一个代码段和多个数据段
指针类型:
__near 16 位指针
__far 32 位指针,所指对象不能超过 64K
__huge 32 位指针,没有 __far 的限制
由于 x86 的寻址模型,两个内容不同的 32 位指针可能指向同一个位置,所以指针的比较在某些复杂情况下可能使编译器发生错误。
如果它存在,而且你能看见它--它是真实的(real)
如果它不存在,但你能看见它--它是虚拟的(virtual)
如果它存在, 但你看不见它--它是透明的(transparent)
Knuth 教授后来确认,The Art of Programming 书名中的 Art 是指与他长期同事的 Art Evans,1967 年,当这几卷书开始出现时,Knuth 在 Carncgi Tech 举行了一个专题会,会上 Knuth 评论说他很高兴看到他的朋友 Art Evans 也在场,因为他已经把这几卷书以他的名字命名,当在场的人回过神来,领悟到这个恶作剧的意思时,无不捧腹大笑,而 Art 本人则比其他人更加惊诧。
如果你觉得 C++ 还不够复杂,那么你知道 protected abstract virtual base pure virtual private destructor 是什么意思吗? 你上次用到它是什么时候呢?
-- Tom Cargill, C++ Journal, 1990 年秋
▲评论
› 网友 匿名 () 于 2008-01-15 07:49:25 发表评论说:
呵呵,不错,以前一直在用你写的软件,今天才得一见!
我在我的blog(http://simeon.blog.51cto.com/)中加上你的网站地址,很是敬慕!