именно это оно и делает.это называется "оператор ?" - единственный в С (если не ошибаюсь) тройственный оператор. Он сводится к следуесчему:
(условие)?{делать если да}:{делать если нет}.
Хотя еффект обоих вариантов одинаков, говорят что с "оператором ?" компайлер генерирует более компактный код.
А в принципе стоит тебе книжки прочитать.
ttt $> gcc --version
gcc (GCC) 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
PS: забыл добавить - твой пример вообще нет смысла компилить потому что компилятор после оптимизации вообще никакого кода не сгенерит так как видит что результаты вычислений не используются.