第十三章:不常见的数据类型

结构体
使用其他类型组建的数据,通常情况下你希望使用类而非结构体。
结构体可以用来明确数据关系、
简化对数据块的操作
用结构体来简化参数列表
用结构体来减少维护
指针
内存中的一个位置就是一个地址,指针本身只包含这个地址。为了使用该指针所指向的数据,就必须访问该地址。如何解释内存中某个位置的内容,是由指针的基类型(base type)决定的。如果某指针指向整数,这就意味着编译器会把该指针所指向内存位置的数据解释为一个整数。
其实就是,开始位置之后使用的字节数量是取决于这片内存的解释。是整数、浮点数还是字符...
使用指针的技巧
把指针操作限制在子程序或类里:减少访问指针的代码的位置数量。
同时声明和定义指针:在靠近变量声明位置为该变量赋初始值通常是一项好的编程实践
在与指针分配相同的作用域中删除指针
在使用指针之前检查指针,确保它指向的位置是合理的
先检查指针所引用的变量再使用它
用狗牌字段来检测损毁的内存。标记字段tag field,当tag field值与预期不符,那么这一数据就被破坏了。
全局数据
如果你随意使用全局数据,或者认为可以随意的使用它们,这说明你还没有充分的理解信息隐藏和模块化的意义。
全局数据会破坏模块化和智力上的可管理性。使用访问器子程序来取代全局数据,所做到的修改不会波及整个程序,它被限制在访问器子程序的内部
不要把你的所有全局数据都扔在一处,既然已经在编写访问器子程序,就应该花时间考虑每一个全局数据应该属于哪个类。
在访问器子程序里构建一个抽象层,这样可以提高代码的可读性。并且使对一项数据的所有访问都集中在同一个抽象层上。
创建一种命名规则来突出全局变量
注释清单
不要用全局变量来存放临时结果