Problem mit mehreren Dateien...



  • Hi,

    Irgendwie kapier ich das gerade uberhaupt nicht... Ich habe folgende Headerdatei (list.h):

    #ifndef _LIST_
    #define _LIST_
    
    struct ListElement 
    {
    	int value;
    	struct ListElement* next;
    };
    
    struct ListElement* head = NULL;
    
    #endif
    

    und dazu dann z.B. die Datei insert.c

    #include <stdlib.h>
    #include "list.h"
    
    void insert(int value) 
    {
    	struct ListElement* newElement = (struct ListElement*)malloc(sizeof(struct ListElement));
    	newElement->value = value;
    
    	if (head != NULL)
    		newElement->next = head;
    
    	head = newElement;
    }
    

    Beim komplilieren (gcc), sagt er mir immer, dass er "head" nicht finden kann, obwohl ich das doch inkludiere (ist alles im selben Verzeichnis). Hier der Compiler-Output:

    insert.c: In function 'insert':
    insert.c:14: error: 'head' undeclared (first use in this function)
    insert.c:14: error: (Each undeclared identifier is reported only once
    insert.c:14: error: for each function it appears in.)
    

    Was soll das ? Irgendwie steh ich da voll auf dem Schlauch... Mit "extern" muss ich bei Headern ja nix machen...


Anmelden zum Antworten