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?