Heim > Backend-Entwicklung > C++ > Können Sie nicht konstante Variablen verwenden, um Array-Größen in C zu deklarieren?

Können Sie nicht konstante Variablen verwenden, um Array-Größen in C zu deklarieren?

Linda Hamilton
Freigeben: 2024-11-02 11:56:31
Original
960 Leute haben es durchsucht

Can You Use Non-Constant Variables to Declare Array Sizes in C  ?

Array-Größendeklaration mit nicht konstanten Variablen

Im Gegensatz zur weithin akzeptierten Vorstellung, dass Array-Größen in C konstante ganze Zahlen sein müssen, zeigen neuere Beobachtungen haben ergeben, dass einige Compiler diesbezüglich eine größere Flexibilität ermöglichen. Während der C-Standard vorschreibt, dass Array-Grenzen konstante Ausdrücke sein müssen, hat GCC eine Erweiterung eingeführt, die die Verwendung nicht konstanter Variablen in Array-Größendeklarationen ermöglicht.

Betrachten Sie das folgende Beispiel:

<code class="c++">int ArraySize = 5;
int MyArray[ArraySize];</code>
Nach dem Login kopieren

In Standard-C würde dieser Code einen Compilerfehler erzeugen, da ArraySize keine Konstante ist. GCC kompiliert es jedoch gerne und ohne Probleme.

Um dieses Verhalten zu verstehen, muss man unbedingt anerkennen, dass die GCC-Erweiterung eine Abweichung vom C-Standard darstellt. Der Auszug aus „The C Programming Language“ von Bjarne Stroustrup besagt ausdrücklich, dass Array-Grenzen konstante Ausdrücke sein müssen.

Trotzdem bietet die GCC-Erweiterung eine praktische Möglichkeit, Arrays zur Laufzeit dynamisch zuzuweisen. Man könnte argumentieren, dass diese Flexibilität auf Kosten der Portabilität geht, da Code, der auf der GCC-Erweiterung basiert, möglicherweise nicht auf anderen kompatiblen C-Compilern kompiliert wird.

Wenn Portabilität ein Problem darstellt, bietet GCC Optionen zur Durchsetzung der Standardkonformität. Das Übergeben des Flags -pedantic während der Kompilierung führt zu einer Warnung für Deklarationen mit nicht konstanter Array-Größe und wird von -std=c 98 als Fehler behandelt. Bei diesen Optionen steht die strikte Einhaltung des C-Standards über der Laufzeitfreundlichkeit.

Das obige ist der detaillierte Inhalt vonKönnen Sie nicht konstante Variablen verwenden, um Array-Größen in C zu deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage