【发布时间】:2015-06-02 06:49:28
【问题描述】:
示例:
void Function(int Number)
{
process.....
**return;**
}
每个函数的末尾是否必须使用“return”?
示例 2:
void Function(**void**)
{
process...
}
如果我没有收到任何值,是否需要在参数列表中使用“void”?
有人说不,有人说是。 什么是对 C 中编译器和最佳实践的完美理解?
【问题讨论】:
-
当您使用 void 作为函数返回类型时,您不需要返回任何值。换句话说,如果你想返回一些东西,那么你应该使用特定的数据类型
-
使用
void时,表示没有要返回的值。所以你不必返回任何 value ,return;和什么都不返回一样好。当您不提及void时,在某些编译器中默认为int,因此您将不得不return一些东西。 -
至于后半部分,这取决于您使用的标准。省略
void作为参数默认为旧式 C 声明/ -
FWIW:我在函数声明和函数定义中都使用
void func(void)和明确的(void)。在函数声明中是必需的;省略void意味着除了函数不是可变参数函数之外,您没有指定任何有关参数的数量和类型的信息,因此您必须包含(void)以告诉编译器拒绝带参数的调用。因为它在声明中是必需的,所以我也在定义中使用它,主要是为了保持一致性,其次是因为我使用的编译器选项(GCC 和-Wstrict-prototypes)需要它。