C语言中,同一个函数可以被定义多次吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中,同一个函数可以被定义多次吗?相关的知识,希望对你有一定的参考价值。

在学习的时候,书上说函数可以做为实参。看到这个表达式,让我产生了这个疑问:
a=max(x,max(y,z));
请问这是什么意思?

可以这样写,其实最常见这样写法的是我们使用printf的时候
printf("max=%d",max(x,y));

这是因为max是有返回值,这种写法就是将函数的返回值作为函数的参数。
a=max(x,max(y,z));
其实就是等价于
y = max(y,z);
a=max(x,y);
只是简化了写法而已。
参考技术A 把max(y,z)的运算结果返回给外层函数,比如max(y,z)返回的值设定为t,既假设t=max(y,z)
然后外层函数就变为a=max(x,t);这样就好理解了
参考技术B 定义a为一个值
从内向外,
先找到x,y中大的一个
找到后,
再与x比较
选择二者大者
就是a的具体实际输出数值
参考技术C 这里是调用max函数,不是max的函数定义。
这里是将max(y,z)的返回值作为另一个max函数的第二个参数。
参考技术D 这个不叫定义,是调用。调用max两次,目的是求x,y,z三个数的最大值。追问

我知道这不是定义,我想知道在整个函数中是怎么应用的,怎么调用的。能举个例子吗,谢谢!

c语言中主函数能调用自己吗?

主函数不能调用自己。
主函数实际上是有参函数,从操作系统传入变量,结束时有数值返回操作系统。
int main(int argc, char *argv[])
return 0;

其中:
int argc, char *argv[] 从操作系统传入
return 0; 返回操作系统

如果你的数据不需要同操作系统发生关系,你可以写成自定义函数,主函数里就一个语句--调用这个自定义函数。
参考技术A 不能,这样会进入死循环的追问

限制条件呢?

追答

没有,不能调用自身

本回答被提问者采纳

以上是关于C语言中,同一个函数可以被定义多次吗?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中函数被多次调用,如何正确得将每次求的的值复制出来,求高手。

C语言中运行中,main函数被重复定义,后面的就不能运行了怎么办,下午考试,求高手

C语言中函数为啥可以嵌套定义 ?

C语言核心技术——函数

在C语言中,怎么样定义结构体数组为全局变量?定义一个无返回值的函数,但是函数有参数可以吗?

c语言中主函数能调用自己吗?