c++中的函数能嵌套定义吗?

如题所述

第1个回答  推荐于2016-11-21
c++是不鼓励在函数体内定义函数,但是也是可以的
#include <stdio.h>
void main()
{ int max_4(int a,int b,int c,int d);
int a,b,c,d,max;
printf(“4 interger numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
max=max_4(a,b,c,d);
printf("max=%d \n",max);
}
int max_4(int a,int b,int c,int d)
{ int max(int a,int b);
int m;
m=max(a,b);
m=max(m,c);
m=max(m,d);
return(m);
}
int max(int x,int y)
{ if(x>y)
return x;
else
return y;
}
第2个回答  推荐于2017-12-15
函数不能嵌套定义。追问

在贴吧里有人说是可以的。正在询问相关答案及写法。有兴趣可以过来一起看。

追答

它说的只是在一个函数中声明别的函数吧?这个当然是可以的,但是那个子函数的具体实现不能在别的函数里面。

追问

你的意思是子函数的参数值不能取自外面的函数吗?还是说函数不能嵌套调用?

追答

我说的是函数不能嵌套“定义”,不是嵌套调用, 嵌套调用是可以的。
如下:
void fun1()
{
printf("in fun1\n");
void fun2() { //这儿是嵌套的定义fun2(), 这是不合法的。
printf("in fun2\n");
}
}

但是嵌套调用可以,如下:
int squre(int a)
{
return a*a;
}
int sum(int a, int b) {return a+b;}
void main() {
int a= 1, b=2;
int result = squre(sum(a,b)); //这儿嵌套调用函数是合法的。
}

本回答被提问者采纳
相似回答