Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中从被调用函数返回值_C_Pointers - Fatal编程技术网

在C中从被调用函数返回值

在C中从被调用函数返回值,c,pointers,C,Pointers,我必须用C写一个代码,它有一个额外的函数,指针作为函数参数。此函数必须使用这些指针执行基本的数学计算(如+-*/),然后将结果发送回调用函数main() 但是我不知道,被调用的函数如何表示除以零是未定义的,并将其发送回main() 如果包含math.h并使用std=c99,则可以使用 isinf(div) 检查是否除以0 i、 e 如果您使用的是float,那么在b==0的情况下分配NaN如何?您可以返回一些有意义的内容,而不是void?一个枚举,可能是一个整数。可能是0=success,1=

我必须用C写一个代码,它有一个额外的函数,指针作为函数参数。此函数必须使用这些指针执行基本的数学计算(如+-*/),然后将结果发送回调用函数main()

但是我不知道,被调用的函数如何表示除以零是未定义的,并将其发送回main()


如果包含math.h并使用std=c99,则可以使用

isinf(div)
检查是否除以0

i、 e


如果您使用的是
float
,那么在
b==0
的情况下分配
NaN
如何?您可以返回一些有意义的内容,而不是void?一个枚举,可能是一个整数。可能是0=success,1=Div0,等等。数字/enum可以索引一系列错误消息。
int\tmain(int-argc,\u-TCHAR*argv[])
使用这些函数,你会失去99%的有能力的程序员。@wildplasser:不太可能。大多数有能力的程序员都知道它已经是什么了。@AnT:许多有能力的程序员为POSIX系统编写C程序。他们不在乎
\u tmain
。例如,大多数VPS或云实例或HPC超级计算机(或平板电脑)运行一些POSIX系统,如Linux。顺便说一句,我从1987年开始(使用SunOS,然后是Linux)一直在用C(有时是C代码的生成器)编码,从来没有使用过
\u tmain
或Windows。除零不是无穷大,它是未定义的。从数学上讲,代码应该在尝试用zeroSure除法之前处理这个问题,但C是这样处理的。2.0/0.0=INF,0.0/0.0=NaN,-2.0/0.0=-INF。参见@陳勝漢: C规范无需遵守IEEE 754。同样,C标准指出,在C中,除零是未定义的行为。在您的例子中观察到的
NaN
只不过是编译器的一个特定属性,只是UB的一种可能表现形式。它与C本身无关。
isinf(div)
if(isinf(div)) {
    printf("\n a/b is undefined\n\n");
}