Wie schreibe ich Deklarationen von externen Arrays (und doppelten Arrays) in die Header-Dateien von C?

8

Angenommen, ich möchte ein globales Datenfeld für mein Programm freigeben, zum Beispiel:

%Vor%

Was ist die korrekte extern -Deklaration für dieses Array in der C-Header-Datei?

Auch was ist mit einem Array wie folgt:

%Vor%

In meiner Header-Datei habe ich Folgendes versucht:

%Vor%

Aber das führt zu Compiler-Fehlern:

%Vor%

Ich kann es nicht herausfinden.

Danke, Boda Cydo.

    
bodacydo 06.08.2010, 06:29
quelle

2 Antworten

6

Dieser Link behandelt die Probleme mit Arrays und Größen, die als extern verwendet werden und wie man sie verwaltet.

>
  1. Deklariert eine begleitende Variable, die die Größe des Arrays enthält und in der gleichen Quelldatei definiert und initialisiert wird (mit sizeof), in der das Array definiert ist
  2. Definieren Sie eine Manifestkonstante für die Größe, damit sie in der Definition und in der externen Deklaration konsistent verwendet werden kann

  3. Verwenden Sie einen bestimmten Sentinel-Wert (in der Regel 0, -1 oder NULL) im letzten Element des Arrays, damit der Code das Ende ohne explizite Größenangabe bestimmen kann
Praveen S 06.08.2010 06:51
quelle
2

Der von Ihnen gepostete Code sieht für mich gut aus und kompiliert ( gcc -std=c99 -pedantic und gcc -std=c90 -pedantic ) auf meinem Computer. Haben Sie diese Zeilen kopiert oder könnten Sie einen Tippfehler in Ihrem echten Header gemacht haben?

Beispielhafte Tippfehler, die Ihren Fehler verursachen könnten (reine Vermutung):

%Vor%     
schot 06.08.2010 07:24
quelle

Tags und Links