Hallo, ich wollte mal ausprobieren, wie man in C ein einfaches Programm modularisiert.
also, aus dem funktionierendem Programmcode ################################################# #include <stdio.h> /*Prototyp fuer Funktion calc*/ float calc(float *ix, float *yp, char *op);
int main(void) { ... }
float calc(float *ix, float *yp, char *op) { ... return(gibt); } #################################################
mache ich 2 Module und eine header-datei file1.c ################################################# #include <stdio.h> #include "calc.h" /*Einfügen der header-datai calc.h*/
int main(void) { ... } #################################################
file2.c ################################################# #include <stdio.h>
float calc(float *ix, float *yp, char *op) { ... return(gibt); } #################################################
calc.h ################################################# float calc(float *ix, float *yp, char *op); #################################################
Die Compilierung habe ich versucht mit: cc -I /home/.../header/ file1.c file2.c -o programm
Der Compiler muckt auch nicht bei seiner Arbeit. Trotzdem klappt die Parameteruebergabe nicht mehr. Ist da ein offensichtlicher Fehler?
Fuer Hilfe bin ich dankbar!
Gruss, Torsten
Am Mon, 28 Aug 2000 schrieb Torsten Lange:
Hallo, ich wollte mal ausprobieren, wie man in C ein einfaches Programm modularisiert.
....
Die Compilierung habe ich versucht mit: cc -I /home/.../header/ file1.c file2.c -o programm
Versuche mal: gcc -c file1.c gcc -c file2.c gcc file1.o file2.o -o programm
Ciao, Tobias
On Mon, Aug 28, 2000 at 01:35:23AM +0200, Tobias Koenig wrote:
cc -I /home/.../header/ file1.c file2.c -o programm
Und gerade hier haette ich gedacht, dass es geht. Aber ich haette es wohl mal probieren sollen. Wahrscheinlich macht er im o.g. Fall
file1.c -> a.out file2.c -> programm
Mehr als merkwuerdig ist dann allerdings nur, dass der Linker nichts dazu sagt.
Versuche mal: gcc -c file1.c gcc -c file2.c gcc file1.o file2.o -o programm
Best regards from Dresden/Germany Viele Gruesse aus Dresden Heiko Schlittermann
On Mon, Aug 28, 2000 at 06:44:10PM +0200, Torsten Lange wrote:
Hallo, ich wollte mal ausprobieren, wie man in C ein einfaches Programm modularisiert.
also, aus dem funktionierendem Programmcode ################################################# #include <stdio.h> /*Prototyp fuer Funktion calc*/ float calc(float *ix, float *yp, char *op);
int main(void) { ... }
float calc(float *ix, float *yp, char *op) { ... return(gibt); } #################################################
mache ich 2 Module und eine header-datei file1.c ################################################# #include <stdio.h> #include "calc.h" /*Einfügen der header-datai calc.h*/
int main(void) { ... } #################################################
file2.c ################################################# #include <stdio.h>
#include "calc.h" ist zwar nicht zwingend notwendig, hilft aber, Diskrepanzen zwischen Prototype und Definition zu entdecken.
float calc(float *ix, float *yp, char *op) { ... return(gibt); } #################################################
calc.h ################################################# float calc(float *ix, float *yp, char *op); #################################################
Die Compilierung habe ich versucht mit: cc -I /home/.../header/ file1.c file2.c -o programm
cc file1.c file2.c -o program Das -I ist nicht notwendig, da Du das Include in ".." eingeschlossen hast, das sucht im aktuellen Verzeichniss.
Der Compiler muckt auch nicht bei seiner Arbeit. Trotzdem klappt die Parameteruebergabe nicht mehr. Ist da ein offensichtlicher Fehler?
Wie -- hast Du es etwas genauer? Was klappt bei der Uebergabe nicht? (Mal abgesehen davon, dass ich fuer die Floats vielleicht keine Pointer uebergeben wuerde, sondern die Zahlen selbst.
Heiko
lug-dd@mailman.schlittermann.de