前言:工作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; //编译器不会报错,这就是隐患