为什么函数中的花括号在C风格的语言中不是可选的?

Ove*_*erv 18 c

语言设计者选择在以下场景中使花括号可选:

if (a)
    b
while (a)
    b
...
Run Code Online (Sandbox Code Playgroud)

为什么函数中不允许这样的,像这样?

int add(int a, int b)
    return a + b;
Run Code Online (Sandbox Code Playgroud)

Rob*_*per 25

我相信这会弄乱语法.例如,这个空函数定义之间没有区别......

void empty()
{
    ;
}
Run Code Online (Sandbox Code Playgroud)

......和这个函数声明:

void empty();
Run Code Online (Sandbox Code Playgroud)

  • 你钉了它.+1 (3认同)

Pet*_*man 5

我不确定他们是否"选择"了这个.相反,这种能力忽略了if,while,for等的花括号,这是他们指定语法的方式的自然结果.语法禁止它的功能可能是因为旧式函数声明.