+ -
当前位置:首页 → 问答吧 → 关于表达式结果值类型与表达式元素类型的关系

关于表达式结果值类型与表达式元素类型的关系

时间:2010-08-17

来源:互联网

guint32 Zong_fen=0;
gint16 Bar_now=10;

Zong_fen-Bar_now表达式返回值是一个非负值,这是合理的吗?类似表达式的结果是强制为被减数类型(如此为非负),这是C标准的定义吗?
(int)Zong_fen-Bar_now   这个表达式才得到想到允许的负值结果;

作者: 凌彬严   发布时间: 2010-08-17

ANSI C和K&R C都有类似的算术转换原则
int和unsigned int进行算术运算 结果为unsigned int,这叫做整型升级。

作者: lenky0401   发布时间: 2010-08-17

  1.     uint32_t u = 0;
  2.     int16_t  i = 10;

  3.     printf("%u, %d", u - i, u - i);
复制代码
输出:4294967286, -10

当int和unsigned int 运算时,int做类型提升,提升为unsigned int,运算结果为unsigned int,-10对应的unsigned int 4294967286

作者: zzyong08   发布时间: 2010-08-17