[英]no return value from one C function written for linux, how does c compiler deal with that?
我得到一个程序(最初是为linux编写的)。 我无法理解某些函数的语法。 这些函数没有返回值类型。 我举一个例子
add_one_point(xx,yy,zz,index)
float xx,yy,zz;
int index;
{
//the implementation
}
在某些函数中,实现不返回任何值,但是某些实现确实返回值。 这是有效的C代码吗? 如果是这样,C编译器如何处理呢?
提前致谢! 跑步
较旧的C版本允许省略返回类型,将其默认为int
。
C99不再允许它,因此,如果在C99模式下编译,它将失败。
您应该声明一个不返回任何值的函数为return void
,无论如何都应指定返回类型。 您的编译器可能允许您编译未指定返回值的函数(它将默认为int,这就是为什么该代码可能/一直在工作的原因),但是现代的编译器至少会发出警告。
此外,正如其他人已经注意到的那样,输入类型也以不寻常的方式指定(未经验证,我将其称为非标准兼容)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.