C语言中不能在函数里面声明函数吗

 我来答
灵长目1990
2016-09-17 · TA获得超过2716个赞
知道小有建树答主
回答量:956
采纳率:50%
帮助的人:930万
展开全部

  你这个问题看似简单,其实涉及到了函数的声明与定义,以及C语言的标准规范具体编译器的实现问题。


  从标准规范来看:

  1. C语言允许函数里声明函数,但是不建议这么写,因为不利于多文档的组织。

  2. C语言禁止函数里定义函数,但是个别编译器却没遵循标准。

  3. C语言的标准编译器的实现并不是完全统一,为了可移植性,建议一切都按C语言标准中推荐的做法来写。


  我还写了个代码附带注释,程序在CFree这个IDE(内置gcc编译器)上运行是通过的,但是在VC++6上就可能通不过了,主要是编译器具体实现不同。

#include <stdio.h>

//函数外 
//声明,允许,推荐的做法 
int add1(int a, int b);

int main(int argc, char *argv[])
{
//函数内
//声明,允许,但是不建议这么写 
int add2(int a, int b);

//C语言标准里禁止函数内定义函数、
//但是有个别编译器也允许这样做,比如GCC
//此种写法不通用,强烈不建议使用 
int add3(int a, int b)
{
return a+b;


//C99标准中,调用函数之前,必须保证声明已出现过 
printf("%d\n", add1(1,2));
printf("%d\n", add2(2,3));
printf("%d\n", add3(3,4));

return 0;
}

//函数外 
//定义,允许
int add1(int a, int b)
{
return a+b;
}

//定义,允许
int add2(int a, int b)
{
return a+b;
}


  -->您的采纳是我们的动力<--

天雨下凡
2016-09-17 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65154
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
C语言中可以在函数里面声明函数,但是不能在函数里面定义函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式