c语言函数可以嵌套调用吗?c语言嵌套定义和嵌套调用
其实c语言函数可以嵌套调用吗的问题并不复杂,但是又很多的朋友都不太了解c语言嵌套定义和嵌套调用,因此呢,今天小编就来为大家分享c语言函数可以嵌套调用吗的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
C语言函数可以嵌套定义吗
以下正确的描述是:在C语言程序中(B)。
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C语言中函数的定义都是相互平行、相互独立的,也就是说在函数定义时,函数体内不能包含另一个函数的定义,即函数不能嵌套定义,但可以嵌套调用。
所在函数库为
math.h、stdio.h、string.h、float.h
int abs(int i)返回整型参数i的绝对值
double cabs(struct complex znum)返回复数znum的绝对值
double fabs(double x)返回双精度参数x的绝对值
long labs(long n)返回长整型参数n的绝对值
double exp(double x)返回指数函数ex的值
以上内容参考:百度百科-C语言函数
C语言函数嵌套
#include<stdio.h>
void b()
{
printf("Hello World!\n");
}
void a()
{
b();
}
void main()
{
a();
}
这样就OK了,只要遵循一个原则,函数在被调用前必须是已经声明过的。因为编译器是要先知道有这个东西存在(已经被定义或声明过),才能通过编译。
如果函数b在函数a之前定义(如上),则不需要在函数a里定义,直接调用即可;
如果函数b在函数a之后定义(如下),则应在在a中声明函数b之后才能调用。
void a()
{
void b();
b();
}
void b()
{
printf("Hello World!\n");
}
C语言函数嵌套问题
在C语言中,所有的函数定义,包括主函数main在内,都是平行的。也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义.
在例子中,没有嵌套定义的.
int max(int a,int b)
{
if(a>b)return a;
else return b;
}//这是在定义max
而main()函数中,
void main()
{
int max(int a,int b);//这是声明,被调用函数,定义在main函数前,可以省略.
int x,y,z;
printf("input two numbers:\n");
scanf("%d%d",&x,&y);
z=max(x,y);//这是调用.
printf("maxmum=%d",z);
}
所以不矛盾..
如果你还想了解更多这方面的信息,记得收藏关注本站。