Freekazonid
24-08-2004, 16:12
moin
ich habe eine datei, def.c, wo einige definitionen drinnen sind, zb arrays & structs. diese sollen in einigen anderen dateien verfuegbar seien, und die gespeicherten werte sollen fuer alle funktionen gleich sein
(sagen wir in def.c ist int zahl=0 defeniert, und funktion peter in der datei kuchen. sagt zahl = 1. nun macht funktion gabi in der datei torte.c printf("%d\n", zahl); sollte 1, nicht 0 kommen)
geht das ueberhaupt so? denke ja, soll ja mit extern ermoeglichtwerden?!
wenn ja, wie wende ich das korrekt an? habe zb ne struktur in def.c
/*
Structure for the default arguments
*/
struct __default {
char def_gip[MAX_ARG_LEN];
char def_log[MAX_ARG_LEN];
char def_exe[MAX_ARG_LEN];
char def_get[MAX_ARG_LEN];
char def_ssh[MAX_ARG_LEN];
char def_SER[MAX_ARG_LEN];
} _default;
in einer anderen bla.c steht in einer funktion
if ( (r = strcmp( CMD[0], tmp ) ) == 0 )
strcpy(_default.def_gip, arg);
nun meckert der dadrueber
*/home/freeka/stuff/progging/my0wn/rim/rimc/src/read_config.c:86: warning: passing arg 1 of `strcmp' from incompatible pointer type
*/home/freeka/stuff/progging/my0wn/rim/rimc/src/read_config.c:87: error: request for member `def_gip' in something not a structure or union
habe zuvor in der datei
extern *CMD[];
extern _default;
nun, wie geht das nun korrekt?
danke
ich habe eine datei, def.c, wo einige definitionen drinnen sind, zb arrays & structs. diese sollen in einigen anderen dateien verfuegbar seien, und die gespeicherten werte sollen fuer alle funktionen gleich sein
(sagen wir in def.c ist int zahl=0 defeniert, und funktion peter in der datei kuchen. sagt zahl = 1. nun macht funktion gabi in der datei torte.c printf("%d\n", zahl); sollte 1, nicht 0 kommen)
geht das ueberhaupt so? denke ja, soll ja mit extern ermoeglichtwerden?!
wenn ja, wie wende ich das korrekt an? habe zb ne struktur in def.c
/*
Structure for the default arguments
*/
struct __default {
char def_gip[MAX_ARG_LEN];
char def_log[MAX_ARG_LEN];
char def_exe[MAX_ARG_LEN];
char def_get[MAX_ARG_LEN];
char def_ssh[MAX_ARG_LEN];
char def_SER[MAX_ARG_LEN];
} _default;
in einer anderen bla.c steht in einer funktion
if ( (r = strcmp( CMD[0], tmp ) ) == 0 )
strcpy(_default.def_gip, arg);
nun meckert der dadrueber
*/home/freeka/stuff/progging/my0wn/rim/rimc/src/read_config.c:86: warning: passing arg 1 of `strcmp' from incompatible pointer type
*/home/freeka/stuff/progging/my0wn/rim/rimc/src/read_config.c:87: error: request for member `def_gip' in something not a structure or union
habe zuvor in der datei
extern *CMD[];
extern _default;
nun, wie geht das nun korrekt?
danke