Solo curioso, cosa succede realmente se definisco un array di lunghezza zero int array[0];
nel codice? GCC non si lamenta affatto.
Programma di esempio
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Una precisazione
In realtà sto cercando di capire se gli array di lunghezza zero inizializzati in questo modo, invece di essere indicati come la lunghezza variabile nei commenti di Darhazer, siano ottimizzati o meno.
Questo perché devo rilasciare un po 'di codice nel jolly, quindi sto cercando di capire se devo gestire i casi in cui SIZE
è definito come 0
, cosa che accade in alcuni codici con una definizione staticaint array[SIZE];
In realtà sono rimasto sorpreso dal fatto che GCC non si lamenti, il che ha portato alla mia domanda. Dalle risposte che ho ricevuto, credo che la mancanza di un avviso sia in gran parte dovuta al supporto del vecchio codice che non è stato aggiornato con la nuova sintassi [].
Poiché mi chiedevo principalmente l'errore, sto etichettando la risposta di Lundin come corretta (quella di Nawaz era prima, ma non era così completa) - gli altri stavano sottolineando il suo uso effettivo per le strutture imbottite di coda, sebbene pertinente, non è ' t esattamente quello che stavo cercando.
[]
in Python o anche ""
in C? A volte, hai una funzione o una macro che richiede un array, ma non hai dati da inserire.