Estensione da questo questionChe tipo di dichiarazione è questa?
Ho problemi a capire questo codice.
struct foo myfoo; // --> Is it forward declaration or object creation. ?
struct foo
{
int a;
};
int main()
{
return 0;
}
Nel codice contrassegnato con la freccia -->
È la dichiarazione diretta o la creazione dell'oggetto. ?
Se la dichiarazione è avanti, cosa viene chiamato struct foo;
? Se si tratta di creazione o istanziazione di oggetti, come può creare un oggetto prima della definizione della struct.
Il compilatore gcc
funziona correttamente ma un altro compilatore restituisce un errore.
gcc -Werror -Wall tst.c -o tst
Qualche suggerimento o spiegazione su questo comportamento di gcc
? Non avrei potuto trovarlo da nessuna parte come documentato.
non ho avuto la possibilità di guardare lo standard C99, quindi non sono ancora sicuro se è specificato da qualche parte, +1. – iabdalkader
@melpomene: ho concordato – Omkant
@melpomene, o forse una funzione? Sembra che capisca che la struttura è definita nello stesso file in seguito. – Shahbaz