我有一些使用MIPS编译器从SGI系统移植过来的代码。它具有声明为具有双返回类型的函数。如果函数找不到正确的双精度值,这些函数将返回"NULL“
英特尔C编译器不喜欢这样,但我想看看是否有一个编译器选项来启用这个“功能”,这样我就可以在不更改代码的情况下进行编译。我查看了手册页,似乎找不到它。
谢谢
当前存在的代码示例,可以很好地使用MIPS
double some_function(int param){
double test = 26.25;
if(param == 10){
return test;
}
return (NULL);
}英特尔编译器报告:错误:返回值类型与函数类型不匹配
发布于 2010-05-28 01:04:51
根据你的评论:
我刚刚检查过了,调用函数只是把它当作一个有效的双精度值来使用(在if语句中)
我只需将函数修改为return 0;,而不是return NULL;
发布于 2010-05-28 00:47:51
通过编译器选项,可能有一个"NaN“(而不是一个数字)功能。但这仍然不会是null。
发布于 2010-05-28 00:51:06
这不是一个编译器选项,但您可以(在理论上)使用#define NULL 0来获得所需的效果。
https://stackoverflow.com/questions/2923067
复制相似问题