• C专家编程 第1章 C:穿越时空的迷雾 1.2 C语言的早期体验


        1.2 C语言的早期体验
        数组下标从0而不是从1开始。a[100]的有效范围a[0]~a[99]。
     
        C语言的基本数据类型直接与底层硬件相对应。

        auto关键字显然是摆设。(只对创建符号表入口的编译器设计者有意思)意思为:“在进入程序块时自动进行内存分配”(与全局静态分配或在堆上动态分配相反)它是缺省的变量内存分配模式。 

        表达式中的数组名可以看做是指针。

        float被自动扩展为double。尽管在ANSI中情况不再如此。它与PDP-11中浮点数的硬件表示方式有关。首先,在PDP-11或VAX中,从float转换到double的代价非常小,只要在后面增加一个每个位数均为0的字即可。如果要转换回来,去掉第二个字就可以了。其次,要知道在某些PDP-11的浮点数硬件表示形式中有一个运算模式位(mode bit),你既可以只进行float的运算,也可以只进行double的运算,但如果想在这两种方式间进行切换,就必须修改这个位来改变运算模式。 

        不允许嵌套函数(函数内部包含另一个函数的定义)。

        register关键字。这个关键字能给编译器设计者提供线索,即程序中那些变量属于热门,就可以把它们存放到寄存器中。这个设计可以说是一个失误。如果让编译器在使用各个变量时自动处理寄存器的分配工作,显然比一经声明就把这类变量在生命期内始终保留在寄存器中要好。
        复杂的语言要素: 
        Ada中的泛型和任务
        PL/I中的字符串处理
        C++中的模板和多重继承

        C从一个使用工具进化为一种经过大量实验和测试的语言。第一个C编译器大约出现在1970年。时光荏苒,作为它的根基的UNIX系统得到了广泛使用,C语言也随之茁壮成长。它对硬件支持的底层操作的强调,带来了极高的效率和移植性,反过来也帮助UNIX获得了巨大的成功。

  • 相关阅读:
    聚观早报|歌尔股份辟谣被苹果砍单;扎克伯格承认因失误裁员
    R语言有关模型方面的函数(model.)介绍-model.matrix
    《Java8实战》读书笔记08:接口的默认方法
    linux上搭建sftp服务器
    操作系统 进程同步及线程满分作业
    【软考学习12】页式存储、段式存储、段页式存储和物理逻辑地址转换
    三谈exception——错误处理
    驾驶行为检测易语言代码
    [Work Summary] Python将PDF转换成Word文档
    前端面试怎么总问watch和computed区别
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/126068009