hallo, ich frag mich grade wie man diese zeilen besser hinbekommt?
1 | |
2 | |
3 | |
wobei fat.fatType ein unsigned char ist und i ein unsigned long int... das muss besser gehen oder?
|
Anzeige
|
code Optimierung bei 32 bit Variablenhallo, ich frag mich grade wie man diese zeilen besser hinbekommt?
wobei fat.fatType ein unsigned char ist und i ein unsigned long int... das muss besser gehen oder?
Gast
#979604
Was meinst Du mit besser?
Gast
#979660
So allgemein wird man da nicht sagen können. Was für eine Platform? 8Bit, 32Bit? Schuss ins blaue: Der Compiler wird das mit Optimierungen schon gescheit machen.
Gast
#979665
Vieleicht so:
if (fatType==16) i_max=0xffff;
if (fatType==32) i_max=0xffffffff;
while(i != i_max)
{
i=fat_getNextCluster(i);
}
hallo, avr-gcc ist der compiler und die plattform atmega 8 bit. @ Peter auf die idee bin ich noch nicht gekommen, das vorher klarzumachen und die schleife dann einfach laufen zu lassen... probier ich gleich mal aus, danke. weitere vorschläge trozdem willkommen :) wow, als while schleife 64 bytes als do while mit kleiner änderung, bekomme ich den schleifen teil von 92 bytes auf 40 runter, das hat sich gelohnt ;)
Gast
#980034
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:
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:
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|