Ich habe die folgenden Variablen am Anfang meiner Datei definiert, direkt nach meinen #include
Anweisungen;Initialisieren von Globalen mit Variablen in C
int a = 5;
int b = a;
Aber ich bekomme einen Kompilierzeitfehler. Ich weiß, dass globale Variablen implizit statische Speicherdauer haben, aber ich bin mir nicht sicher, wie oder ob dies mit der Ursache dieses Fehlers zusammenhängt.
Sie müssen konstante Ausdrücke verwenden, die zur Kompilierzeit vollständig ausgewertet werden können. Der Wert in "a" ist keine Konstante (auch wenn Sie "const" hinzufügen). Sie könnten 'int * p = & a;' verwenden - die Adresse von 'a' ist eine Kompilierzeitkonstante (Verbindungszeit). Wenn Sie globale Variablen aus komplexeren Ausdrücken wirklich initialisieren müssen, benötigen Sie C++. –