Dans le langage C, l'imbrication des instructions composées forme une
structure classique de blocs, c'est à dire que les déclarations d'une
instruction composée englobée cachent les déclarations des
instructions composées englobantes ayant le même nom.
De surcroît, les déclarations d'une instruction composée
cachent les déclarations de même nom, qui sont à l'extérieur de
toute fonction. Exemple :
int i;
int j;
void proc1()
{
int i; /* cache le i précédent */
int k;
if (a > b)
{
int i; /* cache le i précédent */
int j; /* cache le j précédent */
int k; /* cache le k précédent */
...
}
}