讨论 纠结啊!为了防止 出错 是否不用unsigned

[复制链接]
linqing171 发表于 2016-6-24 13:50 | 显示全部楼层
1 有符号和无符号相比,无符号和负数相比, 这是代码设计人的问题,连是正的还是负的都分不清。
2 如果通篇都是signed long,就一个地方是32768之内的unsigned long,这时候涉及加减乘除的函数库链接进来,确实会有效率不划算,可以权衡一下,但是要加注释。
3 无符号运算肯定比有符号运算简单。
4 对于int为什么不是U8 uint16,C语言为什么定义这个随着cpu的寄存器宽带会变化, 是为了考虑效率。包括c语言里面的整形提升、默认整形等等。比如 unsigned i; register i; static i; int main(); float f=3*4/5; ... ...
BitFu 发表于 2016-6-24 13:57 | 显示全部楼层
俺的代码中
能用uint8_t 解决的就不用uint16_t
能用uint16_t解决的就不用uint32_t
决大多数变量定义都是用uint8_t或uint16_t
全局变量大部分是uint16_t
全局缓冲区要么是char类型的字符串,要么就是uint8_t或uint16_t数组;

只有有限的几个变量(有必要)才用int16_t 或int32_t或double
能用uint16_t 或uint32_t解决的就不用double
int这种通用符号是绝对禁止的
ranli55 发表于 2016-6-24 20:07 | 显示全部楼层
看来楼主是土豪,RAM和ROM可以随便浪费,要是使用只有几百个字节的ROM和几十个字节RAM的单片机看你怎么搞?严重同意楼上的 有时是一个位一个位的去压缩空间
liuyimao485812 发表于 2016-6-26 09:00 | 显示全部楼层
不明白啥意思。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部