Ошибки с использованием троичного оператора в c

У меня есть кусок кода на C, указанный ниже:

main()
{
    int a=10, b;
    a>=5 ? b=100 : b=200 ;
    printf("%d" , b);
}

выполнение кода на компиляторе gcc в unix генерирует ошибку времени компиляции как «lvalue, требуемая как левый операнд присваивания», и указывает ошибку на b = 200, тогда как в окнах, компилирующих с использованием Turbo C, выдается 200 в качестве вывода.

Кто-нибудь может объяснить, что именно происходит в этом случае?

Ответы на вопрос(5)

Ваш ответ на вопрос