发新帖我要提问
12
返回列表
打印

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

[复制链接]
楼主: itelectron
手机看帖
扫描二维码
随时随地手机跟帖
21
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; ... ...

使用特权

评论回复
22
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这种通用符号是绝对禁止的

使用特权

评论回复
23
ranli55| | 2016-6-24 20:07 | 只看该作者
看来楼主是土豪,RAM和ROM可以随便浪费,要是使用只有几百个字节的ROM和几十个字节RAM的单片机看你怎么搞?严重同意楼上的 有时是一个位一个位的去压缩空间

使用特权

评论回复
24
liuyimao485812| | 2016-6-26 09:00 | 只看该作者
不明白啥意思。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则