Ich bin zu doof, oder?

31/01/2010 - 13:19 von Andreas Graebe | Report spam
Hallo @ all,

ich habe die ehrenvolle Aufgabe, mich in ein Programm einzuarbeiten, was
jemand anderer geschrieben hat. Hierbei bin ich auf eine Codesequenz
gestossen, die ich einfach nicht verstehe:


void funktion(int i_eins){

int i_zwei;
float f_drei;

if(i_eins > 10){
f_drei = i_eins / 25;
f_drei = f_drei + 0.5;
i_zwei = (int)f_drei;
i_eins = i_zwei * 25;
}

i_zwei%5-(i_eins/25);
. usw


(Anmerkung: die Variable "i_eins" wird danach nicht mehr verwendet.)

Meiner Meinung nach ist der gesamte Code innerhalb der Abfrage unsinnig, er
koennte genausogut weggelassen werden. Erschwerend kommt hinzu, dass das
alles auf einem Acht-Bit-Mikrocontroller laufen soll, was ja die Verwendung
von Float-Variablen zu einer Zeitvernichtung werden laesst. Eine
Kommentierung ist selbstverstaendlich nicht vorhanden, der Autor des
Programmes ist nicht mehr verfuegbar.

Bin ich nur zu doof, um dieses geniale Stueck Code zu verstehen?

Ich bitte um Kommentare.


Mit freundlichen Gruessen Andreas Graebe
 

Lesen sie die antworten

#1 Wolfgang Mahringer
31/01/2010 - 13:40 | Warnen spam
Hallo Andreas,
Andreas Graebe schrieb:
ich habe die ehrenvolle Aufgabe, mich in ein Programm einzuarbeiten, was
jemand anderer geschrieben hat. Hierbei bin ich auf eine Codesequenz
gestossen, die ich einfach nicht verstehe:
[...]
Erschwerend kommt hinzu, dass das
alles auf einem Acht-Bit-Mikrocontroller laufen soll, was ja die Verwendung
von Float-Variablen zu einer Zeitvernichtung werden laesst.



Bei den kleinen Controllern ist oft sehr wenig RAM verfügbar, und meist
auch kein Stack im üblichen Sinne. Schau doch mal, ob i_eins und/oder
i_zwei nicht auf feste Speicheradresse festgelegt wurde (static, oder
#pragma wird da gerne verwendet).

Der Umweg über float ist allerdings wirklich suboptimal

HTH
Wolfgang

From-address is Spam trap
Use: wolfgang (dot) mahringer (at) sbg (dot) at

Ähnliche fragen