en C un bloc {} est une instruction composite éventuellement munie de déclarations locales au début.
suffit de voir for et while, ce que tu leur fais exécuter est une "instruction", qu'elle soit simple ou composite.
un autre truc mochissime mais fonctionnel, c'est les labels et goto dans les switch(){}
switch(expr)
{
case 1: blabla; break;
label:
case 2: bloblo; break;
case 4: goto label;
}
on a des trucs encore plus ignobles dans un vieux code pour gagner quelques octets de ROM (de la vraie, sans P devant

)