code Optimierung bei 32 bit Variablen

OP #979376
Lesenswert?

hallo,

ich frag mich grade wie man diese zeilen besser hinbekommt?

1
while(!((i==0xfffffff&&fat.fatType==32)||(i==0xffff&&fat.fatType==16))){
2
  i=fat_getNextCluster(i);
3
}

wobei fat.fatType ein unsigned char ist und i ein unsigned long int...
das muss besser gehen oder?
Gast #980034
Lesenswert?

Du musst Dir noch überlegen ob fatType noch andere Werte als 16 oder 32 
annehmen kann, bzw. was dann passieren soll.

Falls dann als default immer i_max = 0xffff sein soll, würde das 
Programm folgendermassen noch etwas kürzer:
1
if (fatType == 32) 
2
{
3
  i_max = 0xffffffff;
4
}
5
else // alle anderen Werte
6
{
7
  i_max = 0xffff;
8
}
9

10
while(i != i_max)
11
{
12
  i=fat_getNextCluster(i);
13
}
OP #980045
Lesenswert?

es gibt nur 32 und 16, von daher ist das genau so wie du schreibst ok.
diese prüfung auf 32 oder 16 mache ich dann jetzt nur ein mal bei der 
initialisierung, danach ändert sich ja nix mehr...die schleife 
allerdings hab ich hier und da mehrmals im code, was jetzt schon 
wesentlich kleiner wird. vor allem dann noch so, wenn i lokal und i_max 
global ist:

1
  do{
2
     i=fat_getNextCluster(i);
3
  }while(i!=i_max);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren