Heim  >  Artikel  >  Backend-Entwicklung  >  Können GCC-Compiler Arrays variabler Größe in C verwenden?

Können GCC-Compiler Arrays variabler Größe in C verwenden?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 02:26:30552Durchsuche

Can GCC Compilers Use Variable-Sized Arrays in C  ?

Arrays variabler Größe: Eine GCC-Erweiterung

Der C-Standard schreibt vor, dass die Größe eines Arrays bei der Deklaration eine konstante Ganzzahl sein muss. Die Frage wirft jedoch die überraschende Beobachtung auf, dass ein Codeausschnitt, der eine nicht konstante Variable für die Array-Größe verwendet, in GCC erfolgreich kompiliert wird.

Die GCC-Erweiterung

GCC führt ein eine Erweiterung des Standards, die die Verwendung nicht konstanter Variablen für Array-Größen ermöglicht. Wie im zitierten Abschnitt aus „The C Programming Language“ erwähnt, wird dies vom Standard nicht unterstützt.

Die Überraschung

Der Codeausschnitt in der Frage deklariert eine Array v1 und eine Funktion f, die ein ganzzahliges Argument akzeptiert (das die Array-Größe darstellt). Beim Zuweisen eines Werts zu v2 in f lässt GCC dieses nicht standardmäßige Verhalten zu.

Auswirkungen

Obwohl GCC diese Erweiterung zulässt, ist es wichtig zu beachten, dass dies der Fall ist nicht Teil des C-Standards. Die Verwendung kann zu Portabilitätsproblemen mit anderen Compilern oder Systemen führen, die die Erweiterung nicht unterstützen.

Durchsetzung und Warnungen

Compiler können den Standard durch Optionen wie -pedantic durchsetzen . Mit dieser Option gibt GCC eine Warnung aus, wenn auf nicht standardmäßige Konstruktionen wie Arrays variabler Größe gestoßen wird. Ebenso macht die Angabe von -std=c 98 dieses Konstrukt zu einem Fehler.

Fazit

Die GCC-Erweiterung ermöglicht die Deklaration von Arrays variabler Größe, dies ist jedoch von entscheidender Bedeutung Beachten Sie, dass dies nicht Teil des C-Standards ist. Aus Gründen der Portabilität und Einhaltung des Standards wird die Verwendung konstanter Array-Größen empfohlen.

Das obige ist der detaillierte Inhalt vonKönnen GCC-Compiler Arrays variabler Größe in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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