Složený příkaz (C)
Složený příkaz (označovaný také jako blok) se obvykle zobrazuje jako tělo jiného příkazu, například příkaz if
. Deklarace a typy popisují tvar a význam deklarací, které se mohou objevit v hlavě složeného příkazu.
Syntaxe
compound-statement
:
{
declaration-list
opt opt statement-list
}
declaration-list
:
declaration
declaration-list
declaration
statement-list
:
statement
statement-list
statement
Pokud existují deklarace, musí předcházet jakýmkoli příkazům. Rozsah každého identifikátoru deklarovaného na začátku složeného příkazu se vztahuje od jeho deklarace k bodu na konec bloku. Je viditelný v celém bloku, pokud ve vnitřním bloku neexistuje deklarace stejného identifikátoru.
Identifikátory ve složeného příkazu se považují za předpokladu auto
, že nejsou výslovně deklarovány jinak s register
, static
nebo extern
s výjimkou funkcí, které mohou být extern
pouze . Specifikátor můžete nechat extern
v deklaracích funkcí a funkce bude stále extern
.
Úložiště není přiděleno a inicializace není povolena, pokud je proměnná nebo funkce deklarována ve složeného příkazu s třídou extern
úložiště . Deklarace odkazuje na externí proměnnou nebo funkci definovanou jinde.
Proměnné deklarované v bloku s klíčovým slovem auto
nebo register
klíčovým slovem jsou relokovány a v případě potřeby inicializovány při každém zadání složeného příkazu. Po ukončení složeného příkazu se tyto proměnné už nedefinují. Pokud má proměnná deklarovaná uvnitř bloku static
atribut, proměnná se inicializuje při zahájení provádění programu a udržuje její hodnotu v celém programu. Informace o službě Storage Classes naleznete v static
tématu Třídy úložiště .
Tento příklad znázorňuje složený příkaz:
if ( i > 0 )
{
line[i] = x;
x++;
i--;
}
Pokud je v tomto příkladu i
větší než 0, spustí se všechny příkazy uvnitř složeného příkazu v pořadí.