如果我没有在函数中指定括号,即使它只是C中的一个语句,为什么会出现错误?

0 c brackets function

在for循环中,while循环和if语句允许我不指定括号,如果我只在其中放入语句,如下所示:

for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
    printf("%3d %6.1f\n", fahr, fahrToCelsius(fahr));
Run Code Online (Sandbox Code Playgroud)

但是,如果我在这样的函数中这样做:

float fahrToCelsius(int fahr)
    return (5.0/9.0)*(fahr-32);
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误.

为什么我不能在只有一个语句的函数中省略括号?

Ani*_*nge 5

因为C支持语言编译器及其实现的标准规范.

一般来说,破坏规范(如编写非标准代码)是一个坏主意,应该避免这样做,以提高应用程序的可读性,可维护性和可移植性.

好的编译器强制执行基于标准的编码.

见这里开放C标准