Página 1 de 1

Eu criei as variáveis booleanas desta maneira, está correta

MensagemEnviado: 31 Jul 2007 15:23
por quispe
unsigned short int Flags1 = 0; // Declara variável usada para flags

#define testa Flags1.F0 // Define bit testa
#define StatusAl Flags1.F1 // Define bit StatusAl

exemplo:

testa ^= 1; // Troca o estado do bit

-------------------------------------------------------------------------------------
outra maneira

struct BOOLEAN
{
unsigned testa :1;
unsigned StatusAl: 1;
}BOOL;

exemplo:

BOOL.testa ^= 1;

Qual o melhor ?????

grande abraços a todos !!!
Quispe

MensagemEnviado: 31 Jul 2007 15:38
por helton
eu faço um pouco diferente..mas funciona legal

Código: Selecionar todos

typedef enum { false = 0, true = 1 } bool;


bool var1, var2;
var1 = true;
var2 = false;

if ( var1 != var2 ) beep();
else plin();



MensagemEnviado: 31 Jul 2007 16:44
por andre_luis
Quispe,

Embora ambas as implementacoes deem o mesmo resultado do ponto de vista do programa, a rotina do Helton - me parece - que o compilador pode otimizar o código, aproveitando o fato de o PIC ter instruçoes de acesso à bit; pois no seu caso, o teste do bit deveria ser realizado pelo compilador atravez de máscara, enquanto que pela sugestao do Helton, poderia mapear diretamente numa unica instrução ( BTFSC, se nao me engano ). É só um palpite.

+++

Valeu !!!

MensagemEnviado: 01 Ago 2007 17:53
por quispe
Valeu, vou tentar estas implementações

Abraço a todos !!!!!