2

我得到了一个程序(最初是为 linux 编写的)。我无法理解某些函​​数的语法。这些函数没有返回值类型。让我举一个例子

add_one_point(xx,yy,zz,index)
  float xx,yy,zz;
  int index;
{
 //the implementation 
}

在某些函数中,实现不返回任何值,但有些函数确实返回值。这是一个有效的 C 代码吗?如果是这样,c 编译器如何处理它?

提前致谢!跑步

4

2 回答 2

4

旧版本的 C 允许省略返回类型,默认为int.

C99 不再允许它,所以如果你在 C99 模式下编译,它会失败。

于 2013-07-22T11:01:42.060 回答
0

您应该将不返回任何值的函数声明为返回void,并且在任何情况下都应指定返回类型。您的编译器可能允许您编译一个没有指定返回值的函数(它将默认为 int,这就是该代码可能/一直在工作的原因),但现代编译器至少会发出警告。

此外,正如其他人已经注意到的那样,输入类型也以不寻常的方式指定(未经验证,我将其称为不符合标准)

于 2013-07-22T11:03:49.103 回答