if(dado_rx = Board.read()!=0x04) sai=1;

Fórum sobre plataforma Arduino

Moderadores: andre_luis, 51, guest2003, Renie

if(dado_rx = Board.read()!=0x04) sai=1;

Mensagempor ÁgioFelipe » 14 Jul 2019 18:45

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.
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Re: if(dado_rx = Board.read()!=0x04) sai=1;

Mensagempor ÁgioFelipe » 17 Jul 2019 10:03

Alguém poderia me confirmar se isso realmente vai funcionar conforme o esperado?
ÁgioFelipe
Word
 
Mensagens: 626
Registrado em: 27 Out 2006 20:04

Re: if(dado_rx = Board.read()!=0x04) sai=1;

Mensagempor andre_luis » 17 Jul 2019 21:44

Tem certeza de que nao gerou nenhum Warning?
Francamente, acho que o compilador nao deveria nem aceitar isso.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: if(dado_rx = Board.read()!=0x04) sai=1;

Mensagempor pamv » 18 Jul 2019 07:58

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;
pamv
Word
 
Mensagens: 842
Registrado em: 20 Jun 2016 21:47

Re: if(dado_rx = Board.read()!=0x04) sai=1;

Mensagempor denis » 19 Jul 2019 09:36

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");
   }
denis
Byte
 
Mensagens: 257
Registrado em: 06 Mar 2007 12:29
Localização: Americana - SP

Re: if(dado_rx = Board.read()!=0x04) sai=1;

Mensagempor pamv » 19 Jul 2019 10:55

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
pamv
Word
 
Mensagens: 842
Registrado em: 20 Jun 2016 21:47


Voltar para ARDUINO

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x