Página 1 de 1
if(dado_rx = Board.read()!=0x04) sai=1;

Enviado:
14 Jul 2019 18:45
por ÁgioFelipe
Pessoal, fazendo uma releitura em um código que escrevi a um tempo atrás, encontrei essa linha:
if(dado_rx = Board.read()!=0x04) sai=1;
Onde Board.read é a leitura da serial em software. Detalhe, esse sistema está funcionando!!
Fiz isso sem nem perceber, pois não sabia que poderia fazer a leitura atribuindo à uma variável e já de cara fazer a comparação.
Re: if(dado_rx = Board.read()!=0x04) sai=1;

Enviado:
17 Jul 2019 10:03
por ÁgioFelipe
Alguém poderia me confirmar se isso realmente vai funcionar conforme o esperado?
Re: if(dado_rx = Board.read()!=0x04) sai=1;

Enviado:
17 Jul 2019 21:44
por andre_luis
Tem certeza de que nao gerou nenhum Warning?
Francamente, acho que o compilador nao deveria nem aceitar isso.
Re: if(dado_rx = Board.read()!=0x04) sai=1;

Enviado:
18 Jul 2019 07:58
por pamv
Compilando com -Wall no gcc aparece o seguinte aviso:
teste.c:11:9: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if(dado_rx = Board_read()!=0x04) sai=1;
Re: if(dado_rx = Board.read()!=0x04) sai=1;

Enviado:
19 Jul 2019 09:36
por denis
pamv escreveu:Compilando com -Wall no gcc aparece o seguinte aviso:
teste.c:11:9: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if(dado_rx = Board_read()!=0x04) sai=1;
No geral isso aqui funciona, atribui o valor para a variável e testa em seguida.
- Código: Selecionar todos
FILE *fptr;
if ((fptr = fopen("temp.log","r")) == NULL)
{
printf("Error! opening file");
}
Re: if(dado_rx = Board.read()!=0x04) sai=1;

Enviado:
19 Jul 2019 10:55
por pamv
Pelas regras de precedência pode funcionar sem parênteses mas não é garantido, por isso o gcc só mostra aquela mensagem quando se ativa -Wall para ele mostrar todos os warnings. Não custa nada por os parênteses