Why are curly braces in functions not optional in C-style languages?
I'm sure this would mess up the grammar. For example there would be no difference between this empty function definition...
void empty()
{
;
}
...and this function declaration:
void empty();
I'm not sure that they did "choose" this. Rather, the ability ommit curly braces for if, while, for, etc. emerges as a natural consequence of the way they specified the grammar. The grammer forbids it for functions probably because of the old-style function declarations.