A!die Software Studio Welcome to A!Die Software Studio

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/)中加上你的网站地址,很是敬慕!

X 正在回复:
姓 名: 留下更多信息
性 别:
邮 件:
主 页:
Q Q:
来 自:
职 业:
评 论:
验 证:


Valid HTML 4.01 Strict Valid CSS!
Copyleft.A!die Software Studio.ADSS
Power by webmaster@adintr.com