Heim >Backend-Entwicklung >C++ >Sind flexible Array-Mitglieder in C gültig?

Sind flexible Array-Mitglieder in C gültig?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-06 09:13:09516Durchsuche

Are Flexible Array Members Valid in C  ?

Flexible Array-Mitglieder in C

In C99 können flexible Array-Mitglieder verwendet werden, um Arrays unbekannter Größe als Teil einer Struktur zu deklarieren. Die Gültigkeit dieser Funktion in C war jedoch Gegenstand von Verwirrung.

Gültigkeit in C

C wurde 1998 standardisiert, bevor flexible Array-Mitglieder eingeführt wurden in C99. Folglich werden flexible Array-Mitglieder in C nicht unterstützt.

Korrekte Deklaration

Trotz des Missverständnisses ist „[0]“ eine gültige Deklaration für ein flexibles Array-Mitglied in C . Diese Syntax gibt an, dass die Größe des Arrays nicht angegeben ist und vom Benutzer zur Laufzeit festgelegt werden muss.

Beispiel

In C wird der folgende Code kompiliert und Ohne Fehler ausführen:

struct Blah {
    int foo[0];
};

Im Gegensatz dazu ist die Syntax „[]“ ohne Größe in C ungültig. Der Versuch, ein flexibles Array-Mitglied mit dieser Syntax zu deklarieren, führt zu einem Compilerfehler.

Das obige ist der detaillierte Inhalt vonSind flexible Array-Mitglieder in C gültig?. 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