MISRA_C规范学习_2004_Rule_6.4_6.5
Grey
全部学习汇总: https://github.com/GreyZhang/misra_c_hacking
MISRA_C规范学习_2004_Rule_6.4_6.5
规则摘录与分析
- 这两条其实多少有点相关性。
- 首先,位域只能够用在Int基础类型上。因为需要考虑到支持符号位。
- 有些数据类型的位域不能用是因为没有进行标准化的定义。
- 最小位应该是2个bit,因为单bit无法支持有符号的数值。
小结
位域的功能其实我用得还是蛮多的,大部分时候都是别人定义了我来直接使用,主要是用在MCU的驱动设计上操作寄存器位。但是这一次规则提到的一些信息,比如8bit的位域并没有明确的标准支持、有符号以及无符号的处理等等,都是之前没有注意过的新知识。
不过话又说回来,如果至少2bit的话,感觉MCU的驱动无法遵守,1bit的可控信息或者可读信息其实还是蛮多的。或许这时候就满足了之前看过的技术上无法保证的MISRA C特殊性的要求了。