Erros ao usar o operador ternário em c

Eu tenho um pedaço de código em C, da seguinte maneira:

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

a execução do código no compilador gcc no unix gera o erro em tempo de compilação como 'lvalue necessário como operando esquerdo da atribuição' e aponta o erro em b = 200 enquanto nas janelas que compilam usando o Turbo C fornece 200 como saída.

Alguém pode explicar o que exatamente está acontecendo neste caso?

questionAnswers(5)

yourAnswerToTheQuestion