zoukankan      html  css  js  c++  java
  • C专家编程 第一章

    第一章 C:穿越时空的迷雾

    1. C语言的史前阶段

      UNIX比C语言出现的早。

      BCPL-->B-->New B-->早期的C

      UNIX(PDP-7汇编)-->UNIX(PDP-11汇编)-->UNIX(C语言)

      PDP-7-->PDP-11、IBM 360 、Honeywell 635

    2. C语言的早期体验

      根据编译器设计者的思路发展的特性:

      • 数组下标从0而不是1开始

      • C的基本数据类型直接与底层硬件相对应

      • auto关键字是摆设

      • 表达式中的数组名可以看作是指针

      • float被自动扩展为double ANSI C不再如此

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

      • register关键字

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

      C预处理器的主要功能:

      • 字符串替换

      • 头文件包含

      • 通用代码模板的扩展

      宏最好只用于命名变量;宏名应该大写;千万不要使用C预处理器来修改语言的基础结构

    4. K&R C

      1972-3 -->1976-9 -->1983-9--->

      早期的C-->K&R C -->ANSI C --->

      1967 --->1985-9 ----->

      Simula 67---->C++---->

    5. 今日之ANSI C

      K&R C-->ANSI C

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

      不可移植代码

      • 由编译器定义的

      • 未确定的

      坏代码

      • 未定义的

      • 约束条件

      可移植的代码

      • 只使用已确定的特性

      • 不突破任何由编译器实现的限制

      • 不产生任何依赖由编译器定义的或未确定的或未定义的特性的输出

      • 遵循标准的

    7. 编译限制

      每个ANSI C必须支持:

      • 函数形参上限至少31

      • 函数实参上限至少31

      • 一条源代码至少509个字符

      • 表达式至少32层嵌套的括号

      • long int最大值不小于2147483647(不低于32位)

    8. ANSI C标准的结构

      四个部分:

      • 介绍:对术语进行介绍和定义

      • 环境:程序启动时发生什么,程序终止时发生什么,以及一些信号和浮点数运算。

      • C语言

      • C运行库

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

    char **和const char **不相容,相信为什么(指针指向的内容是不一样的)
    
    const不能把变量变成常量,只表示这个符号不能被赋值。
    
    1. “安静的改变”究竟有多安静
    算术转换
    
    -   char/short-->int float-->double
        
    -   一个操作数为double,另一个操作数也被转换为double,结果也为double
        
    -   一个操作数为long,另一个也被转换为long,结果也是long
        
    -   unsigned类似
        
    
    字符和整型
    
    -   char、short int和int可以使用在int或unsigned int的表达式中。
        
    -   如果int为32位,源类型的值就转换为int,否则转换为unsigned int
        
    
    寻常算术转换
    
    -   整型升级
        
    
    *当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着浮点精度更高、长度更长的方向转换,整型数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned*
    

    尽量不要在代码中使用无符号类型,只有在位段和二进制掩码时,才可以使用无符号数

    1. 由编译器定义的Pragmas效果
    受到gcc抵制,若用gcc编译会运行计算机游戏。
  • 相关阅读:
    帆软 控件内容 清除
    Spring MVC 拦截器
    jsp文件调用本地文件的方法(Tomcat server.xml 设置虚拟目录)
    Junit 4 测试中使用定时任务操作
    通过URL传递PDF名称参数显示PDF
    SpringMVC 无法访问到指定jsp页面可能的原因
    优化小技巧——复杂属性对象的read模式
    [as部落首发]网页游戏开发中的一些小技巧
    Flash Platform 游戏开发入门
    理解 Flash 中的 ActionScript 3 调试
  • 原文地址:https://www.cnblogs.com/luoxiao23/p/11193060.html
Copyright © 2011-2022 走看看