estou com uma dúvida no programa da página 112 do livro PIC - Programação em C do Fábio Pereira:
4) O programa seguinte imprime alguns valores na tela. Pressionando a tecla 5, quais são os valores impressos?
#include <16f877a.h>
#use delay(clock=4000000,restart_wdt)
#fuses xt,nowdt,put,nobrownout,nocpd,nolvp,nowrt,noprotect
#use rs232(baud=19200,parity=N,xmit=pin_c6,rcv=pin_c7)
main()
{
int x,y;
while ((y = (getc()-48)) > 0)
for (x = 0; x<=10; ++x) printf ("%u x %u = %u\r\n",y,x,x*y);
printf ("FIM");
}
O resultado no programa siow/CCS é o seguinte:

Onde estou voando é nessa linha: while ((y = (getc()-48)) > 0)
A função getc() aguarda a chegada de um caractere pela porta serial padrão e retorna o seu valor.
Não estou entendendo as operações realizadas dentro dos parentesis, a ordem de precedência...como é que depois disso há o retorno do 5 e impressão da tabuada do mesmo pela printf?
obrigado!
Sdçs