C语言:可以在一个函数中定义另一个函数为什么不对?谢谢

 我来答
大宝妈谈教育
高粉答主

2020-04-03 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:50万
展开全部

main函数不是必须定义的,可以尝试放在其他函数前面,放在其他函数的上面,下面,都可以。

编译器编译时,它逐行编译。但它首先找到主函数,当主函数被编译时,它意味着程序被编译。如果主函数位于其他函数之前,则在主函数中调用的子函数(自定义函数)将在主函数之前声明其存在。Void fun(int n,int m);

在大多数编程语言中,必须声明(或在使用之前定义)变量、函数(过程)、结构、类、对象等。如果在使用其函数之前没有声明或定义编译,则编译失败。它还报告错误:未定义的变量或函数,等等。



扩展资料:

main函数,又称主函数,是程序执行的起点。C程序最大的特点就是所有的程序都是用函数来装配的。main()称之为主函数,是所有程序运行的入口。

其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。

int main(void)//整数类型 主函数(无类型)

{

...

y1=f1(x1,x2);//赋值过程

...

}

f1(int a,int b)//f1(整数类型 a,整数类型 b)

{

//百度百科示例代码.....

Y2=f2(x3,x4);//赋值过程

//百度百科示例代码

}

f2(int m,int n)//f2(整数类型 m,整数类型 n)

{

phd121212
推荐于2018-03-16 · TA获得超过494个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:35.2万
展开全部
呵呵,这个问题简单的回答是c语言规定了不能这样。c语言是计算机的一门语言,也有其特定的语法,就像英语那样,不合语法规定的我们就认为是错误的或不地道的或有歧义的。但计算机只有正确(1)与错误(0),没得选了。
至于为什么当初制定语法时这样规定了(好像是先有实践,后有理论的哦,呵呵),我认为可以从下面的几点看:
1。从c/c++编译器编译方式来看。编译器编译的方式是逐条往下编译的。要是一个函数中又定义一个函数,则编译器很容易搞混,分不清到底那一句是函数1的那一句是函数2的,就很有可能上面一句是函数1的,下一句就直接跳到函数2的,跳来跳去的,也只有人能认清,计算机没有像人那样的跳跃思维。所以,语法就这样规定了,这样就可以避免很多的混乱和错误。
2.从审美的角度来看。其实不用我多说,你一看到一个函数里又定义另一个函数时,你就觉得很乱了。尤其是当代码写得很长很长是,更弱爆了!
3.从使用,管理方便角度看。这样规定了,可以使编程模块化,就是不用等前面的写完,后面的才能写。它可以同时进行n个模块(模块可以简单的认为是一个或多个的函数),方便且提高效率啊。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2013-02-01 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5568万
展开全部
C语言程序结构是:
头文件和宏
全局量声明
主函数main{ 函数体}
函数1{函数体 }
函数2{ 函数体}
。。。。
函数n{函数体 }

C语言程序,必须有一个主函数,可以有1个或多个其它函数,所有的函数块是平行的,并列的。
不允许 在一个函数中定义另一个函数。

语法规则如此。这只是一种规定和约定。并不是说其它的计算机语言,或将来发明的计算机语言也必须如此。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
志杰鲁
2013-01-31
知道答主
回答量:9
采纳率:0%
帮助的人:3.9万
展开全部
c语言语法不支持这样做。函数之间是平等的关系,不能互相包含,只能互相调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-01
展开全部
不可以这样。c++ 不支持这种形式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式