04. august 2005 - 23:27Der er
9 kommentarer og 1 løsning
#ifndef problem
Hej jeg har en header fil der indeholder en struct og lidt sager som to C filer skal have adgang til.. Jeg har lavet følgende:
/* Struct containing the paramters needed to start the server */ typedef struct{
char filename[255]; /* Filename of the file to play */ int transcode_status; /* Whether transcode is off/on (0/1) */ int no_Description; /* The number of descriptions */ char* entry[8]; /* Client names, number depends on the #descriptions */ int codec; /* Id of the choosen codec - refering to the codec array */
/* Struct containing the paramters needed to start the server */ typedef struct{
char filename[255]; /* Filename of the file to play */ int transcode_status; /* Whether transcode is off/on (0/1) */ int no_Description; /* The number of descriptions */ char* entry[8]; /* Client names, number depends on the #descriptions */ int codec; /* Id of the choosen codec - refering to the codec array */
} _server_data;
_server_data server_data;
extern char* codec_names[] = {"mp2v", "mp4v"};
#endif
Men det giver stadig fejl, tror det her er det vigtigste fra compiler output:
In file included from callbacks.c:10: edwin.h:18: advarsel: `codec_names' initialized and declared `extern'
In file included from edwin.c:1: edwin.h:18: advarsel: `codec_names' initialized and declared `extern'
flere definitioner af "codec_names" callbacks.o(.data+0x0):/home/molle/demonstrator/gui/src/callbacks.c:14: først defineret hér
jo, ok - jeg ville bare gerne have haft det et sted.. men det bliver løsningen.. Jeg takker for de hurtige og præcise svar..
Jeg troede ellers at det glads "globalt" at lave en #ifndef, er det sådan at du lige ligger inde med et godt link der beskriver de der pre-processor direktiver? Tror lige de skal genopfriskes :)
og for en god ordens skyld - pointen med #ifndef'en er at man ikke får den samme .h fil inkluderet 2 gange i en enkelt .c fil - scenarier er:
noget1.h inkluderer base.h
noget2.h inkluderer base.h
noget.c inkluderer både noget1.h og noget2.h
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.