小编Mon*_*nir的帖子

c中的整数提升

假设我有一台 32 位机器。

我知道在整数提升期间,表达式被转换为:\

  • int 如果原始类型的所有值都可以用 int 表示
  • unsigned 除此以外

你能解释一下下面的表达式会发生什么吗?总的来说,这里的排名是如何工作的?

第一个片段:

si16  x, pt;
si32  speed;
u16 length;
x = (speed*pt)/length;
Run Code Online (Sandbox Code Playgroud)

第二个:

x = pt + length;
Run Code Online (Sandbox Code Playgroud)

编辑:

si16均值signed short(大小 16 位)、si32位均值signed int(大小 32 位)和u16均值unsigned short(大小 16)

我发现以下链接非常清楚地描述了这个问题: 隐式类型转换

具体看Lundin的回答,很有帮助!

c integer-overflow integer-promotion

1
推荐指数
1
解决办法
3833
查看次数

标签 统计

c ×1

integer-overflow ×1

integer-promotion ×1