Ok, ich möchte eine Reihe von Speicheradressen als Konstanten in einer .h-Datei definieren, die von einer Reihe von .c-Dateien verwendet wird (wir sind in C, nicht in C ++). Ich möchte in der Lage sein, den Namen der Variablen zu sehen, anstatt nur die hexadezimale Adresse im Debugger zu sehen ... also möchte ich die #defines, die ich gerade habe, in globale Konstanten umwandeln . Das Problem ist, wenn ich sie so definiere:
%Vor%Dann bekomme ich den gefürchteten "multiple declarations" -Fehler, da ich mehrere .c-Dateien mit dem gleichen .h. Ich würde gerne eine Enum verwenden, aber das wird nicht funktionieren, da es standardmäßig integer (das ist 16 Bit auf meinem System ... und ich muss eine bessere Kontrolle über den Typ haben).
Ich habe darüber nachgedacht, alle Adressen in eine Struktur zu schreiben ... aber ich habe keine Möglichkeit, die Standardwerte der Instanz der Struktur in der Headerdatei zu setzen (ich will nicht annehmen) dass eine bestimmte .c-Datei zuerst die Struktur verwendet und sie woanders ausfüllt. Ich möchte wirklich, dass die Konstanten in der .h-Datei definiert sind)
Es schien so einfach, als ich anfing, aber ich sehe keine gute Möglichkeit, eine global verfügbare kurze int-Konstante in einer Header-Datei zu definieren ... weiß jemand einen Weg, dies zu tun?
Danke!
Wenn Sie mit gcc kompilieren, können Sie den Schalter -ggdb3
hinzufügen, der gcc anweist, Makroinformationen (d. h. #define
s) zu speichern, damit sie in gdb verwendet werden können.