Condividi tramite


Istruzione composta (C)

Un'istruzione composta (detta anche un "blocco") in genere viene visualizzata come corpo di un'altra istruzione, ad esempio l'istruzione if. In Dichiarazioni e tipi viene descritto il modulo e il significato delle dichiarazioni che possono essere visualizzate nell'intestazione di un'istruzione composta.

Sintassi

  • compound-statement:
    { declaration-list opt statement-list opt }

  • declaration-list:
    declaration

    declaration-list declaration

  • statement-list:
    statement

    statement-list statement

Se esistono dichiarazioni, devono precedere qualsiasi istruzione. L'ambito di ogni identificatore dichiarato all'inizio di un'istruzione composta si estende dal punto di dichiarazione fino alla fine del blocco. È visibile nel blocco a meno che non esista una dichiarazione dello stesso identificatore in un blocco interno.

Si presuppone che gli identificatori in un'istruzione composta siano auto a meno che non venga dichiarato esplicitamente con le funzioni di eccezione register, static o extern, che possono essere solo extern. È possibile ignorare l'identificatore extern nelle dichiarazioni di funzione e la funzione sarà sempre extern.

L'archiviazione non viene allocata e l'inizializzazione non è consentita se una variabile o una funzione viene dichiarata in un'istruzione composta con classe di archiviazione extern. La dichiarazione fa riferimento a una variabile esterna o a una funzione definita altrove.

Le variabili dichiarate in un blocco con la parola chiave auto o register vengono ridistribuite e, se necessario, inizializzate quando viene inserita l'istruzione composta. Queste variabili non vengono definite quando si esce dall'istruzione composta. Se una variabile dichiarata in un blocco dispone dell'attributo static, la variabile viene inizializzata quando inizia l'esecuzione del programma e mantiene il suo valore nel programma. Vedere Classi di archiviazione per ulteriori informazioni relative a static.

In questo esempio viene illustrata un'istruzione composta:

if ( i > 0 ) 
{
    line[i] = x;
    x++;
    i--;
}

In questo esempio, se i è maggiore di 0, tutte le istruzioni nell'istruzione composta vengono eseguite in ordine.

Vedere anche

Concetti

Istruzioni (C)