|
发表于 2012-10-25 14:05:36
|
显示全部楼层
总感觉,关心这个,意义不大!
1.使用变量, 本来就是 按变量的取值范围去选择变量类型; 就算是8位的是原子整形, 超出范围还是得用16位的!
2.对于32位机,本来指令中就带8位和16位操作,反正存到内部存储器的时候,还是占用32位空间,对速度本来就没多少影响;
3.就算是有影响,对于32位这样速度的单片机来说, 这样的丁点影响有必要关注吗??? 关注这个不就是转牛角尖吗?
4.关注这个是为了榨干CPU的资源, 我觉得这种想法在设计中就是一致极端的想法, 每个设计都应该留有足够的余量, 如CPU只使用80%的性能, flash只使用80%的空间, 这本来就是系统安全性和设备程序升级换代的需要!
按这样, 关注这个就更加多余了!
所以, 对于整形的类型应该关系的是以下两点:
1. 数据对齐问题
2.程序中应该强类型, 但只考虑 符号和位数, 本来C语言设计这个整形的东西就是一个陷阱:
最好的建议是 按不同的器件, 定义出 u8, u16, u32, s8, s16, s32等类型, 屏蔽像 int, long这种不确定的整形;
还有就是 char,short,int, long这些类型, 一直是存在二次思维的问题, 也就是, 你看到short,你的想想是否有符号, 说多少位数, 才能确定这样的类型是否合适使用! |
|