Nur neugierig, was passiert eigentlich, wenn ich ein Array mit der Länge Null int array[0];
im Code definiere? GCC beschwert sich überhaupt nicht.
Beispielprogramm
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Klärung
Ich versuche tatsächlich herauszufinden, ob Arrays mit der Länge Null, die auf diese Weise initialisiert wurden, optimiert sind oder nicht, anstatt wie in Darhazers Kommentaren auf die variable Länge hingewiesen zu werden.
Dies liegt daran, dass ich Code in die Wildnis freigeben muss, also versuche ich herauszufinden, ob ich Fälle behandeln muss, in denen der SIZE
definiert ist 0
, was in einem Code mit einem statisch definierten Code der Fall istint array[SIZE];
Ich war tatsächlich überrascht, dass sich GCC nicht beschwert, was zu meiner Frage führte. Aufgrund der Antworten, die ich erhalten habe, glaube ich, dass das Fehlen einer Warnung hauptsächlich auf die Unterstützung von altem Code zurückzuführen ist, der nicht mit der neuen [] -Syntax aktualisiert wurde.
Da ich mich hauptsächlich über den Fehler gewundert habe, markiere ich Lundins Antwort als richtig (Nawaz war die erste, aber nicht so vollständig) - die anderen wiesen darauf hin, dass die tatsächliche Verwendung für schwanzgepolsterte Strukturen zwar relevant ist, aber nicht. genau das, wonach ich gesucht habe.
[]
in Python oder sogar ""
in C? Manchmal haben Sie eine Funktion oder ein Makro, für das ein Array erforderlich ist, aber Sie müssen keine Daten einfügen.