Код
static const uint8_t X_MAX = 100;
uint8_t x;
uint8_t y;
y = (x < X_MAX)? (x+1):x; // 1
y = x + ((x < X_MAX)? 1:0); // 2
y = x + (x < X_MAX)? 1:0; // 3
Первый и второй варианты верны, третий - нет.
Видимо играют роль приоритеты математических и логических операций.
Кому не сложно прокомментируйте. Спасибо!