相关疑难解决方法(0)

在一个C表达式中,unsigned int和signed int存在,哪种类型将被提升为什么类型?

我有一个关于C语言标准中的数据类型提升规则的查询.C99说:

C整数提升还要求"如果int可以表示原始类型的所有值,则该值将转换为int;否则,它将转换为unsigned int".

我的问题是在C语言表达式的位置unsigned intsigned int存在的情况下,哪种类型将被提升为什么类型?

例如int,不能代表unsigned int(值大于MAX_INT值)的所有值,而unsigned int不能代表-ve值,那么在这种情况下什么类型被提升为什么?

c integer-promotion

25
推荐指数
2
解决办法
3万
查看次数

整数推广 - 步骤是什么

此代码打印B2

short a=-5;
unsigned short b=-5u;
if(a==b)
    printf("A1");
else
    printf("B2");
Run Code Online (Sandbox Code Playgroud)

我读到了有关整数提升的内容,但我现在还不清楚,这里的示例是如何工作的?有人可以彻底发布编译器在扩大/截断值时遵循的步骤吗?

c c++ integer-promotion

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

标签 统计

c ×2

integer-promotion ×2

c++ ×1