C专家编程(学习笔记)

    技术2026-06-17  7

           C诡异离奇,缺陷重重,却获得了巨大的成功——Dennis Ritchie

    1.C语言的史前阶段

           C语言的产生竟然源于一个失败的项目,1969年——Multics工程。

           编译器设计者的金科玉律:效率(几乎)就是一切。编译器的效率包括两个方面:运行效率(代码的运行速度)和编译速度(产生可执行代码的速度)。除了一些开发和学习环境之外,运行效率起决定性作用。

    2.C语言的早期体验

           根据编译器设计者的思路而发展形成的语言特性:1)数组下标从0而不是1开始;2)C语言的基本数据类型直接与底层硬件相对应;3)auto关键字显然是摆设;4)表达式中的数组名可以看作是指针;5)float被自动扩展为double;6)不允许嵌套函数(函数内部包含另一个函数的定义);7)register关键字。

    3.标准I/O库和C预处理器

           字符串替换,头文件包含,通用代码模板的扩展。

    4.K&R C

           1978年,C语言经典名著The C Programming Language出版,这个版本的C语言被称为"K&R C"。

    5.今日之ANSI C

           1989年12月,C语言标准草案最终被ANSI委员接纳。

    6.它很棒,但它符合标准吗

           不可移植的代码:由编译器定义的;未确定的;

           坏代码:未定义的;约束条件;

           可移植的代码:严格遵循标准的1)只使用已确定的特性;2)不突破任何编译器实现的限制;3)不产生任何依赖由编译器定义的或未确定的或未定义的特性的输出。

    7.编译限制

            每个ANSI C编译器必须能够支持:

            1)在函数定义中形参数量的上限至少可以到达31个;

            2)在函数调用时实参数量的上限至少可以到达31个;

            3)在源代码行里至少可以有509个字符;

            4)在表达式中至少可以支持32层嵌套的括号;

            5)long int的最大值不得小于2 147 483 647(long int不低于32位);

    8.ANSI C标准的结构

            语法标准,介绍,环境,语法,描述,约束条件,语义。

    9.阅读ANSI C标准,寻找乐趣和裨益

            从源代码中发现更深层、更底层的原理。

    Processed: 0.008, SQL: 9