extern struct



  • hi

    hab da ein kleines problem mit extern. ich habe einen "struct-variable" in einer datei und möchte auf diese durch extern in einer anderen c-datei zugreifen. das ganze sieht so aus:

    gemeinsame header datei:

    ...
    typedef struct {
    	char	date[50];
    	char	from[80];
    	char	to[80];
    	char	subject[512];
    } s_header;
    ...
    

    die eine c-datei:

    ...
    s_header	*headerList = NULL;
    ...
    

    die zweite c-datei:

    ...
    extern struct s_header	*headerList;
    ...
    
    void igrendeinefunktion()
    {
    	rcvDate->setTxt(headerList[selected].date);
    }
    ...
    

    fehlermeldungen in der zeile: rcvDate->setTxt(headerList[selected].date);
    error C2036: 'struct s_header *' : Unbekannte Groesse
    error C2027: Verwendung des undefinierten Typs "s_header"
    : Siehe Deklaration von 's_header'
    error C2228: Der linke Teil von '.date' muss eine Klasse/Struktur/Union sein

    wie muss ich das anstellen das das funktioniert 😞 ?...irgendeine idee?

    liebe grüße



  • extern struct s_header *headerList;

    muss

    extern s_header *headerList;

    sein, also ohne struct.



  • danke, aber das hab ich schon probiert. dann krieg ich diese fehlermeldungen:

    error C2143: Syntaxfehler : Fehlendes ';' vor '*'
    error C2501: 'headerList' : Fehlende Speicherklasse oder Typbezeichner

    und diese beziehen sich dann auf diese zeile:

    extern s_header *headerList;



  • So weit mir bekannt darf eine extern-Variable auf max. 6 Zeichen bestehen... vllt ist das der Grund?! 🙂



  • das ist es auch nicht...habs grad probiert



  • Sicher, dass die zweite C Datei den Header eingebunden hat ?



  • Ich denke auch das es dann wohl ein Fehler beim einbinden sein wird...



  • oh gott wie peinlich!! .. ihr habt recht, der header war in der zweiten datei nicht eingebunden .. mein erter beitrag und dann sowas 😡

    vielen dank!

    🤡


Anmelden zum Antworten