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

如题所述

呵呵,这个问题简单的回答是c语言规定了不能这样。c语言是计算机的一门语言,也有其特定的语法,就像英语那样,不合语法规定的我们就认为是错误的或不地道的或有歧义的。但计算机只有正确(1)与错误(0),没得选了。
至于为什么当初制定语法时这样规定了(好像是先有实践,后有理论的哦,呵呵),我认为可以从下面的几点看:
1。从c/c++编译器编译方式来看。编译器编译的方式是逐条往下编译的。要是一个函数中又定义一个函数,则编译器很容易搞混,分不清到底那一句是函数1的那一句是函数2的,就很有可能上面一句是函数1的,下一句就直接跳到函数2的,跳来跳去的,也只有人能认清,计算机没有像人那样的跳跃思维。所以,语法就这样规定了,这样就可以避免很多的混乱和错误。
2.从审美的角度来看。其实不用我多说,你一看到一个函数里又定义另一个函数时,你就觉得很乱了。尤其是当代码写得很长很长是,更弱爆了!
3.从使用,管理方便角度看。这样规定了,可以使编程模块化,就是不用等前面的写完,后面的才能写。它可以同时进行n个模块(模块可以简单的认为是一个或多个的函数),方便且提高效率啊。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-06
简单的是C语言规定了不能这样。C语言是计算机的一门语言,也有其特定的语法,就像英语那样,不合语法规定的就认为是错误的或不地道的或有歧义的。
第2个回答  2013-02-01
C语言程序结构是:
头文件和宏
全局量声明
主函数main{ 函数体}
函数1{函数体 }
函数2{ 函数体}
。。。。
函数n{函数体 }

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

语法规则如此。这只是一种规定和约定。并不是说其它的计算机语言,或将来发明的计算机语言也必须如此。
第3个回答  推荐于2017-12-15
语法规定,这是不对的,如果那么做会出现编译错误。

函数是用来调用并实现某种功能的。作为一种方法,函数是独立的。正是因为这种特性,才把一些特殊的、常用的方法抽取出来封装成一个个的函数。因此把一个函数写在另一个函数里面也已经失去了函数本身的意义。本回答被网友采纳

C语言:可以在一个函数中定义另一个函数为什么不对?
1.从c\/c++编译器编译方式来看.编译器编译的方式是逐条往下编译的.要是一个函数中又定义一个函数,则编译器很容易搞混,分不清到底那一句是函数1的那一句是函数2的,就很有可能上面一句是函数1的,下一句就直接跳到函数2的,跳来跳去的,也只有人能认清,计算机没有像人那样的跳跃思维.所以,语法就这样...

在c语言程序的函数中可以定义另一个函数吗?
不可以,C语言只允许在函数中声明和嵌套调用。C语言中是不允许作嵌套的函数定义。因此程序中各个函数之间是平行的,不存在上一级函数和下一级函数的问题,这样是为了简化C语言编译器的逻辑性。

C语言中在一个函数中可以声明另一个函数吗(不是定义)?在main里面声明也...
可以哦,我试了一下,可以在main()函数中声明函数,在main函数外定义。但是不能将一个函数声明和定义都放在某个函数中,这样会出错,还有就是在函数中声明另一个函数时,要注意必须在被调用之前声明。

在C程序的函数中不能定义另一个函数,这句话是什么意思啊?为什么啊...
不能定义另一个函数,但是可以使用另一个函数。比如A函数运行中要“引用”到B函数,可以。注意,是引用,B函数的实际运行方式要在A函数之外编写。就是,首先B函数已经编写好了,然后A函数运行的时候可以调用B函数,但是不能你写着A函数的时候,突发奇想,要写个B函数,而且还要直接写在A函数之中,这...

C语言中能否在一个自定义函数中调用另一个自定义函数?
当然可以!C语言程序的最基本的模块就是函数,该程序规定:任意函数都可以调用其它任意一个函数,包括函数本身;1、函数调用自己本身, 这种称为递归;通过递归,计算1+2+3+...+n值的代码:2、自定义函数调用其它自定义函数的例子:这个例子就是主函数调用自定义函数fun2,然后fun2调用另一个自定义...

我自己写了一个函数定义在另一个.c文件中,已声明,但编译时报错未定义...
在定义函数的.c文件中包含声明函数的.h文件。例如:\/\/f1.h#include <stdio.h>void func(int x);\/\/f1.cpp#include "f1.h"void func(int x){ \/\/函数定义}\/\/main.cpp#include "f1.h"void main(){ int x = 2; func(2);} ...

c语言中可以在一个函数中调用另一个函数吗
可以啊 但是调用的函数需要先声明或者定义,或者是公用函数

C语言中在一个函数中可以声明另一个函数吗(不是定义)?在main里面声明也...
三、对于函数声明,工程上一般都声明在函数外部,且声明在头文件中,以便其它文件也能用,局部函数除外。补充:1、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。2、尽管C语言...

C语言中同一个函数体内可以再包含一个函数体吗
2.从审美的角度来看。其实不用我多说,你一看到一个函数里又定义另一个函数时,你就觉得很乱了。尤其是当代码写得很长很长是,更弱爆了!3.从使用,管理方便角度看。这样规定了,可以使编程模块化,就是不用等前面的写完,后面的才能写。它可以同时进行n个模块(模块可以简单的认为是一个或多个...

C语言同一个源程序里面如何在一个函数里面调用另外一个函数?
楼上那几位的就可以保证同一个文件满足你要求了,只要被调用的函数定义在调用函数的前面就可以,否则无法编译过,如果在另外个文件里的函数需要确认2个文件的头文件包含关系,通过extern 调用,也可以使用,还有些细节说起来太麻烦可以查阅基本的C语言书籍都有 ...

相似回答