分类: C/C++
2008-03-20 18:11:46
然而,精华并不意味着完美,C语言在赋予程序员足够灵活性的同时,也给了程序员很多犯错误的机会。所以有必要关注指针、结构体和联合体的实现细节,从而保障程序的性。
在此.第一部分介绍《MISRA—C:2004》中与指针相关的部分规则,第二部分讲解结构体和联合体的操作规范。下文中凡是未加特殊说明的都是强制(required)规则,个别推荐(advisory)规则加了“推荐”标示。
1 指针的安全规范
《MISRA—C:2004》关于指针的规范主要分为三个部分:指针的类型转换规则、指针运算的规则和指针的有效性规则。
1.1 指针的类型转换
指针类型转换是个高风险的操作,所以应该尽量避免进行这个操作。MISRA—C对其中可能造成严重错误的情况作了严格的限定,选择其中两条作简要分析。
规则11.4(推荐):指向不同数据类型的指针之间不能相互转换。
思考如下程序: