小编Lal*_*ver的帖子

C中的可变促销

我在解决为什么输出在每种特定情况下都不同时遇到了问题.在示例代码a中,有一个我期望的变量提升和结果> 6,但在示例代码b中,结果是<= 6:

/* **Code a** */
puts("Code a\n");
unsigned int a = 6;
int b = -20;
( a+b > 6) ? puts("> 6\n") : puts("<= 6\n");

/* **Code b** */
puts("Code b:\n");
uint8_t a1 = 6;
int8_t  b1 = -20;  
( a1+b1 > 6) ? puts("> 6\n") : puts("<= 6\n");
Run Code Online (Sandbox Code Playgroud)

输出:

Code a

> 6

Code b:

<= 6
Run Code Online (Sandbox Code Playgroud)

c integer-promotion

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

标签 统计

c ×1

integer-promotion ×1