linux-l: C frage

Ihno Krumreich ihno at fh-brandenburg.de
So Apr 12 16:09:24 CEST 1998


> 
> Carlos Gherardelli Tel. 00-49-30-314-79306 wrote:
> 
> > Hallo,
> >         ich hab ein Program in C entwickelt
> > der ich bei der Arbeit unter SUN Solaris laufen lasse
> > und zu Hause unter Linux (RH 5.0), d.h gcc.
> > Erstaunlicher weisse sind die Ergebnisse v=F6lig anders :-(.
> > Kann das sein oder mache ich was ganz falsch?
> >
Das kann leider sehr gut moeglich sein. Vor kurzem hatten wir den Fall.
das der Borland C-Compiler ein anderes Ergebnis lieferte als der 
Microsoft (beide auf Windof), gcc auf Linux und cc Auf Solaris. Es war
der alte Trick mit dem man Studenten zu verwirren versucht, wenn man eine
Variable in einem Ausdruck mit Postincrement und Postdecrement behandelt.
Bei einigen Ausdruecken ist in C nicht eindeutig geregelt in welcher
Reihenfolge der Ausdruck evaluiert werden muss. An manchen Stellen
kann einem auch der Optimierer einen Streich spielen. Passiert
wirklich selten. Aber auch heuete sind Compiler noch nicht als
Fehlerfrei zu betrachten. Moral von der Geschichte: Alzu komplizierte
Ausdruecke vermeiden.

Aber genauer koennte man etwas dazu sagen wenn man weiss worin sich
diem Ergebnisse unterscheiden (falsche Berechnung, anderes Verhalten der
Bibliotheksfunktionen ....).

Portable Programme zu schreiben ist nicht unmoeglich wie die grosse
Anzahl der Programme unter der GNU-Lizenz beweist. Es bedarf aber etwas
Uebung zu wissen welche Funktion und welcher Code tatsaechlich
portabel ist.

Gruss

Ihno Krumreich

==============================================================================
Ihno Krumreich       | Phone (49) 3381 355438          U   U N   N  III  X   X
FH Brandenburg       | email: ihno at fh-brandenburg.de   U   U NN  N   I    X X
Magdeburgerstr. 50   | FAX                             U   U N N N   I     X
D-14770 Brandenburg  | NIC:IK139  RIPE:IK255-RIPE      U   U N  NN   I    X X
                                                        UUU  N   N  III  X   X
___________________________________________________________________
   NT is not the answer, it's the question and the answer is NO




Mehr Informationen über die Mailingliste linux-l