- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 4 von 4

Thema: Variablen Gültigkeitsbereich

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Variablen Gültigkeitsbereich

    Ich habe in main.c die Konstante "VERSION" deklariert und möchte auf diese in der eingebundenen Datei terminal.c zugreifen. Die Konstante wird in terminal.c per Vorwärtsdeklaration bekannt gemacht.

    Ich bekomme keinen Compilerfehler aber "VERSION" scheint nur in main.c gültig zu sein - in terminal.c ist sie NULL.

    Kennt sich jemand mit dem Gültigkeitsbereich von Variablen aus und kann mir hier weiterhelfen?

    main.c:
    Code:
    #include <avr/pgmspace.h>
    #include "terminal.h"
    
    const prog_char[] VERSION = "version 0.1";
    
    ...
    terminal.c:
    Code:
    #include <avr/pgmspace.h>
    #include "terminal.h"
    
    // forward declaration
    extern const prog_char* VERSION;
    
    ...
    
    some_func(VERSION);

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    ich habe jetzt eine weile mit bcc32 rumgespielt.
    dein "extern" sollte nichtmal notwendig sein.
    versuch mal ein "extern const prog_char[] VERSION;"
    und "some_func() {...}" VERSION sollte ja global bekannt sein.

    gruesse

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Die Bekanntmachung (Deklaration mit extern) sollte in einem Headergeschehen. Und zwar im Header zur C-Quelle, in der das Ding angelegt wird.

    foo.c: const char * ...
    foo.h: extern const char * ...

    main.c: #include "foo.h"


    das gilt genauso für Funktionen
    Disclaimer: none. Sue me.

  4. #4
    Die Deklaration (im Header) von "extern const prog_char* VERSION" auf "extern const prog_char[] VERSION" zu ändern hat das Problem gelöst.

    Vielen Dank!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress