*Markus: C: Verlinken statischer Bibliothek führt zu falschem Ergebnis

Beitrag lesen

Hallo,

»» $ gcc -c durchschnitt.c -o durchschnitt.o -std=c99
»» $ ar rcs libdurchschnitt.a durchschnitt.o
»» $ gcc -static durchschnitt.h Main.c -L. -ldurchschnitt -o Main_statisch -std=c99

ich habe das hier mit gcc Version 4.3.2 und ar aus
den binutils 2.1.18.20080103 mal genauso probiert und kann
kein auffälliges Verhalten finden, d. h. der Durchschnitt
wird - auch mit Verwendung der Library - korrekt ausgegeben.

Hmmm, ich werde abends mal nachsehen, welche gcc-Version ich daheim benutze. Oder eventuell sind irgendwo bestimmte Compilerflags gesetzt?

  • durchschnitt.h:
    Die Zeilen

#define MAX 30
#include <stdio.h>
#include <stdlib.h>


>   
> werden allesamt nur in main.c benötigt. Aus Code-Design-Aspekten  
> würde ich diese Zeilen daher auch in main.c schreiben, zumal es  
> ja auch sein kann, dass durchschnitt.h von anderen Codes  
> eingebunden sind, die evtl. <stdio.h> etc. schon anderweitig  
> inkludieren oder die andere Vorstellungen von MAX haben [...]  
  
Dazu hätte ich sowieso eine Frage. Wie sieht das "korrekte" Design für C-Programme eigentlich aus? Für sinnvoll halte ich natürlich einen objektorientierten Ansatz, aber da müsste ich mich wiederum fragen, warum ich nicht gleich C++ verwende, wenn ich schon mit C C++, oder Java "simulieren" will.  
  
Markus