У меня возникли проблемы с выяснением, почему в каждом из этих случаев вывод отличается. В образце Code 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");
Вывод:
Code a
> 6
Code b:
<= 6