C语言中函数调用问题

void f1(void), void f2(void)两个函数,在f2中调用f1函数,现在f2调用f1的同时从f1子程序中再调用f2函数,怎么调用函数怎么声明,假设是一个最简单的*.c程序不考虑头文件,主程序不在同一个文件夹的情况。
void f1(void); 这叫声明
void f1(void) {} 这叫定义

void f1();
void f2() { f1(); }//就是在些时f1()中再调用f2()函数,怎么调用?不用返回值,只要能从f1()中返回f2中去执行就可以了。

第1个回答  2019-11-21
如果一个函数要使用参数,它就必须定义接受参数值的变量。
形式参数与实际参数

函数定义时填入的参数我们称之为形式参数,简称形参,它们同函数内部的局部变量作用相同。形参的定义是在函数名之后和函数开始的花括号之前。
调用时填入的参数,我们称之为实际参数,简称实参。

必须确认所定义的形参与调用函数的实际参数类型一致,同时还要保证在调用时形参与实参的个数出现的次序也要一一对应。如果不一致,将产生意料不到的结果。与许多其它高级语言不同,(是健壮的,它总要做一些甚至你不希望的事情,几乎没有运行时错误检查,完

全没有范围检测。作为程序员,必须小心行事以保证不发生错误,安全运行。
赋值调用与引用调用

一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call
by
value),这种方法是把参数的值复制到函数的形式参数中。这样,函数中的形式参数的任何变化不会影响到调用时所使用的变量。

把参数传递给函数的第二种方法是“引用调用”(call
by
reference)。这种方法是把参数的地址复制给形式参数,在函数中,这个地址用来访问调用中所使用的实际参数。这意味着,形式参数的变化会影响调用时所使用的那个变量
第2个回答  2009-09-21
你说的这种情况是函数的间接递归调用,这种调用需要定义两个函数来执行,比如你举得这个例子
void f1()
{
........
f2();
........
}
void f2()
{
.............
f1();
............
}
其中虚线代表函数中的一些代码
种种情况有一个问题,就是会无止尽调用,这样函数就不会结束,所以必须在函数内部加上限制语句,常用的手段是加if语句来限制,如果满足if语句后面的条件,就停止调用,我也是才学这个不久,希望能帮助你本回答被提问者采纳
第3个回答  2009-09-28
void f1(void); 这叫声明
void f1(void) {} 这叫定义

源文件中函数只要声明就可以调用,但是连接时候必须有且只有一个定义(除了内联函数,重复的定义会被忽略)。

void f1();
void f2() { f1(); }
void f1() { f2(); }

基本概念还是得搞清楚的...

----

至少请把别人说的话看完... 我那不就是f2调用f1,f1也调用f2么...
第4个回答  2009-09-21
重复定义编译时通不过的,怎么会是忽略。。。

C语言中函数调用的问题?
关于c语言中函数调用问题解答如下:首先如果是编译的这个代码那这个函数肯定被调用了,让你觉得没有调用是因为while循环没有被执行。图中红色框内代码p1和p2经过赋值p1是肯定大于p2所以不满足while.的条件直接退出了函数。你需要看看要实现啥在改一下。

为什么我的C语言程序在调用函数时出现错误?
1、一般是你在调用函数的时候传递的是int类型的数据,但那个函数定义的参数类型不是int(比如是结构或者指针或者数组)。2、下面为C语言的错误大全及中文解释:1: Ambiguous operators need parentheses — 不明确的运算需要用括号括起2: Ambiguous symbol xxx — 不明确的符号3: Argument list syntax error — 参数表...

c语言中函数可以调用函数吗?
可以调用。C语言最基本的模块为函数,任意函数都可以调用其它任意一个函数,包括函数本身。1、自定义函数调用其它自定义函数的例子:include <stdio.h>void fun1(int a)\/\/自定义函数fun1。{ printf("%d\\n",a);}void fun2(int m, int n)\/\/自定义函数fun2。{ fun1(m); fun1(n)...

c语言中函数调用有三种方法,能帮忙各举个例子吗?
1、voidbb(intcc);};实际上bb的函数原形是voidbb(aa&this,intcc);以前知道类的成员函数在调用时会传入一个this指针,而不晓得thiscall就是专门指定了这种调用方式。2、C语言中调用函数的方法及步骤:工具\/原料:C语言首先需要输入想要调用的函数。然后当输入一个括号后,即可观察他的参数。接着在...

C语言中函数调用问题
一般说来,有两种方法可以把参数传递给函数。第一种叫做“赋值调用”(call by value),这种方法是把参数的值复制到函数的形式参数中。这样,函数中的形式参数的任何变化不会影响到调用时所使用的变量。把参数传递给函数的第二种方法是“引用调用”(call by reference)。这种方法是把参数的地址复制给...

C语言中函数的调用有哪些步骤?
long p=1;初始化。p *= m;初始化。long s = 0;累加。s += power(i,k);累乘计算。这类题弄清楚每个函数做什么,涉及哪些量,和函数之间的调用关系。初始化、循环计算、返回结果是最常见的3个步骤,其中第2步可以是基本运算,也可以是调用其它函数完成某个功能。

C语言中函数调用问题
首先我们来说一下,你这个程序是有很大的问题的。函数有且只有唯一一个返回值,当程序执行到return的时候,这个函数就结束并返回了。所以,你这里写2个return来返回最大值和最小值是不可能的。再者,如果你想使用返回值作为最大值,最小值的传递,那么在main函数中,你调用star函数的时候需要一个变量...

c语言中怎么调用函数
1、直接调用,这种函数一般没有返回值,或者不需要返回值 如 printf("你好,可以直接调用printf函数的!")2、表达式调用,比如对于用户写的一个求最大值函数int max(int a,int b),一般有返回值 如 c=max(6,9) 也就是要用一个量来接收函数返回来的值。3、参数调用,同样对于上面的max 如...

请详细解释有关C语言函数返回值的调用问题,题目如下
选C。因为sub的返回值为void,也就是说它没有返回值,所以B就错了;sub()的参数类型为char(字符类型)和float(浮点型),而A里面的“abc”是字符串形式,所以A错了;D中的第一个 参数为32,它根本不是char型的,估计这种形式,系统只能把它当作int型来处理,而第二个参数也不是浮点型的数据...

c语言中怎么调用函数?谢谢
C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。include<stdio.h>int fun(int x, int y); \/\/ 函数声明,如果函数写在被调用处之前,可以不用声明void main(){int a=1...

相似回答
大家正在搜