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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.