前言:工作3年矣,是时候总结归纳3年来所思所想,构建自己的知识体系,形成编程思想了,基础与应用之间的知识通道需要打通,那就开始吧。


    《C和指针》

    第三章 3.3节 typedef

  

    1. C语言支持typedef机制;

    2. typedef用于为各种数据类型定义新名字;

    3. typedef声明类型可以减少使声明又臭又长的危险;

    4. 使用typedef而不是#define来创建新的类型名,因为后者无法正确处理指针类型。


    代码规范总结:

    在工作过程中,引入tcp/ip协议栈,文件系统,往往在引入这些外部库和模块的同时,会引入新的数据类型定义,导致一个工程中,有时候会存在5,6种完全不同的命名方式的基本数据类型,这是非常不可取的,给代码维护及开发带来了许多不便,因此提出如下建议:

    1.引入的库或者模块,无论开发或者维护,维持原有基本数据类型不变;

    2.新开发模块,基于统一且唯一的基本数据类型开发;

    3.基于外部库及模块的开发,使用同一且唯一的基本数据类型开发。


    使用经验总结:

    在Linux存储管理中,有如下代码

    typedef struct { unsigned long pte_low; } pte_t;

    #define pte_val(x) ((x).pte_low)

    

    如此使用,的确很好,使用了面向对象的编程手法,带来了如下好处:

    1. 如果代码使用如下实现方式会如何?

    #define unsigned long pte_t;

    这样会导致一个问题

    unsigned long new_pte;

    pte_t new = new_pte;    //编译器不会报错,这就是隐患