Const selbstreferentielle Strukturen

8

Ich schreibe in C.

Ich habe einen neuen Typ (noFunc_menuEntry) definiert, der aus einer selbstreferentiellen Struktur besteht.

%Vor%

Ich muss eine Reihe von Variablen wie folgt definieren:

%Vor%

und so weiter.

Also muss ich Deklaration und Definition der Variablen trennen, da jede Variable von anderen Variablen abhängt. In einer Headerdatei habe ich die Deklaration

geschrieben %Vor%

etc ..., und in einer .c-Datei in einer Funktion habe ich die Variablen initialisiert:

%Vor%

usw. für die anderen Mitglieder und Variablen.

Ich möchte jedoch, dass meine Variablen const :

sind %Vor%

Also meine Frage betrifft die Deklaration und Definition von const Variablen des Typs, den ich definiert habe. Wie kann ich? Mache ich etwas falsch?

Natürlich, wenn ich einfach const in der Deklaration hinzufüge, meldet der Compiler mir einen Fehler, wenn ich die Variablen initialisiere (ich versuche, schreibgeschützte Variablen zu schreiben).

    
BzFr 17.08.2016, 06:47
quelle

3 Antworten

6

Wenn diese Variablen const sein sollen, müssen Sie die Initialisierung ohne die Funktion ausführen.

Aber zuerst behandeln wir die const in der Typdefinition:

%Vor%

Dann die Deklarationen für die Header-Datei:

%Vor%

Und schließlich die Definition und Initialisierung in der Quelldatei:

%Vor%     
user694733 17.08.2016, 07:14
quelle
6

Sie könnten ein Array verwenden , da ein paar item_i impliziert, dass Sie dies möglicherweise tun müssen.

%Vor%     
StoryTeller 17.08.2016 07:15
quelle
1

Verwenden Sie extern const in der Deklaration in der Kopfzeile. extern deklariert die Variable nur für die Verwendung im Programm, ohne Speicher zuzuweisen. Fahren Sie dann mit der Definition im Wesentlichen fort const noFunc_menuEntry menuEntry_1 = {title_1, &menuEntry_2, &menuEntry_4, &menuEntry_1, &menuEntry_5}; .. so on

    
Sashank 17.08.2016 07:44
quelle

Tags und Links