Página 1 de 1

instruçâo

MensagemEnviado: 16 Mar 2008 05:53
por antonio
Pessoal !

Analizando este pedaço de codigo abaixo encontrei algo estranho pelo menos para mim è o seguinte, como devo interpertar esta linha de codigo abaixo;
****}while(bit_test(led_on,3)==0);
Estou confuso devido ao depois de testar o bit,3 da variavel led-on aparece isto ==0); nao sei como devo ler ou interpetar isto, algem pode ajudar??
desde jà agradeço

o resto do codigo està abaixo.

do{
output_a(led_on);
rotate_left(&led_on,1);
delay_ms(300);
}while(bit_test(led_on,3)==0);

MensagemEnviado: 16 Mar 2008 11:38
por ivan
Antonio,

"==0" => significa se é igual a 0(zero)

Ou seja, testa se o resultado/retorno da função bit_test é igual a zero.

Em C, o operador "=" serve somente para atribuição de valores.
O operador "==" serve para comparar igualdades.

MensagemEnviado: 16 Mar 2008 12:42
por antonio
Brigado Ivan por ajudar!!

Cà esta a confusão porque eu custumo fazer assim;
while(!bit_test(led_on,3)); com o "!"

Sendo assim o fazer assim"while(bit_test(led_on,3)==0); ou assim"while(!bit_test(led_on,3));" o resultado è o mesmo??

Grato

MensagemEnviado: 16 Mar 2008 16:10
por ivan
while(!bit_test(led_on,3)); com o "!"

Sendo assim o fazer assim"while(bit_test(led_on,3)==0); ou assim"while(!bit_test(led_on,3));" o resultado è o mesmo??


Usar o while(bit_test(led_on,3)==0) fica mais legível, porém mais lento pq faz uma instrução igual antes de avaliar o while.

Com "while(!bit_test(led_on,3))" o not é uma instrução mais rápida que o "==", mas dificulta um pouco o entendimento, só isso.

As estratégias de programação são equivalentes sim.

MensagemEnviado: 16 Mar 2008 16:18
por antonio
Grande Ivan!
Vc tirou minha duvida....Valeu!!
Até++

MensagemEnviado: 17 Mar 2008 12:37
por LeandroPIC
respondi no forum da labtools