Envoyé par
Obsidian
Les accolades ont une signification sémantique. La grammaire du C définit le « if » comme suit : « if ( expression ) statement ». C'est la déclaration elle-même (statement) qui peut prendre plusieurs forme, et notamment celle de « déclaration composée » (compound statement). Ça veut dire qu'à ce stade, les accolades servent à faire exactement ce à quoi elles servent en français et en mathématiques : insérer plusieurs entités groupées là où on en attend en principe qu'une seule. C'est aussi pour cela que les accolades peuvent ouvrir un cadre de pile, ce qui permet entre autre d'y déclarer de nouvelles variables locales: il s'agit de sauvegarder un contexte qui va être modifié par les appels successifs que le bloc contient. Du coup, ouvrir une accolade pour n'y insérer qu'un seul élément n'a pas beaucoup de sens, sauf à vouloir explicitement définir un singleton, puisque par défaut le C attend une déclaration unique. (...)