Share via


Instrução composta (C)

Uma instrução composta (também chamada de “bloco”) aparece geralmente como o corpo de outra instrução, como a instrução if. Declarações e tipos descreve o formato e o significado das declarações que podem aparecer no cabeçalho de uma instrução composta.

Sintaxe

compound-statement:
{declaration-listoptstatement-listopt}

declaration-list:
declaration
declaration-list declaration

statement-list:
statement
statement-list statement

Se houver declarações, elas deverão vir antes de todas as instruções. O escopo de cada identificador declarado no início de uma instrução composta estende-se de seu ponto de declaração ao fim do bloco. Ele fica visível em todo o bloco, a menos que exista uma declaração do mesmo identificador em um bloco interno.

Os identificadores em uma instrução composta são presumidos como auto, a menos que declarados explicitamente de outra maneira com register, static ou extern, exceto por funções, que só podem ser extern. Você pode deixar de fora o especificador extern em declarações de função, e a função ainda será extern.

O armazenamento não é alocado e a inicialização não é permitida se uma variável ou função é declarada em uma instrução composta com a classe de armazenamento extern. A declaração se refere a uma variável ou função externa definida em outro lugar.

Variáveis declaradas em um bloco com a palavra-chave auto ou register são realocadas e, se necessário, inicializadas sempre que a instrução composta é inserida. Essas variáveis não são mais definidas após a saída da instrução composta. Se uma variável declarada em um bloco tiver o atributo static, a variável será inicializada quando a execução do programa iniciar e manterá seu valor durante o programa. Consulte Classes de armazenamento para obter informações sobre static.

Este exemplo ilustra uma instrução composta:

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

Neste exemplo, se i for maior que 0, todas as instruções na instrução composta serão executadas na ordem.

Confira também

Instruções