Tabelle "global" bekannt machen



  • Hallo

    ich habe folgende Tabelle:

    char tab_ses[][9] ={
    "04 29",
    "05 33",
    "06 33",
    "07 24",
    "08 39",
    "09 39",
    "10 39",
    "11 26",
    "19 26",
    "ENDE " };

    Die brauche ich in mehreren Funktionen. Wie muss das definiert sein? Wenn ich die in eine Header-Datei schreiben, kommt eine Fehlermeldung.

    Vielen Dank
    cu
    George



  • Du brauchst sie in mehreren Funktionen? Oder eher in mehreren *.cpp Dateien?

    Im letzteren Falle mach dich mal über das Schlüsselwort extern schlau.
    Man sollte keine Sachen in Header dateien definieren. Lediglich deklarieren.



  • Ich habe die Tabelle jetzt in eine Header-Datei gepackt und als const deklariert:

    const char tab_ses[][9] ={
    "04 29",
    "05 33",
    "06 33",
    "07 24",
    "08 39",
    "09 39",
    "10 39",
    "11 26",
    "19 26",
    "ENDE " };

    Der Compiler (MS C++) meckert nicht. Und es geht auch. Ich kann auf die Tabelle zugreifen, nachdem ich die Header-Datei included habe. Oder sollte man das so nicht machen (bitte Begründung) bzw. ist das nicht C-Standard?

    Vielen Dank
    cu
    George



  • also eigentlich sind wir hier in nem C und nicht in nem C++ thread. deshalb zeig ich mal wie's in C geht.

    in die .c datei kommt

    char tab_ses[][9] =
    { 
      "04 29", 
      "05 33", 
      "06 33", 
      "07 24", 
      "08 39", 
      "09 39", 
      "10 39", 
      "11 26", 
      "19 26", 
      "ENDE "
    };
    

    das darf aber nur in einer .c datei stehen. wenn du es in mehreren .c dateien definierst nörgelt der linker.

    in die .h datei kommt

    extern char tab_ses[][9];
    

    klappt aber auch in C++ 😉


Log in to reply