C函数(变量)应该 先定义(声明),后使用

2020年3月20日
今天在学习C语言时,学到了函数是不能嵌套定义的,应该平行定义,如下面这样:

#include <stdio.h> //by [C语言中文网](http://c.biancheng.net/view/1851.html)
void func2(){		//函数2
    printf("C语言小白变怪兽");
}
void func1(){		//函数1
    printf("http://c.biancheng.net");
    func2();		//调用函数2
}
int main(){		//主函数
    func1();	//调用函数1
    return 0;	
}

但是跟小伙伴写的时候,更改了顺序:

#include <stdio.h> 		
void func1(){							//这里函数func1()的位置提前了
    printf("http://c.biancheng.net");
    func2();
}
void func2(){
    printf("C语言小白变怪兽");
}
int main(){
    func1();
    return 0;
}	//此段代码报错

编译,于是报错:
在这里插入图片描述
意思是func2 未定义,明明已经定义了啊,最后咨询了大佬,才想明白:

C语言是一行一行执行的,需要先声明,在调用

void func1(){							
    printf("http://c.biancheng.net");
    func2();
}

在这段程序中,func1调用了func2,但是此时func2还未声明,故报错,
所以需要在提前声明func2才能调用。

提前声明就可以了:

#include <stdio.h> 
void func2();		//提前声明fun2(),以供调用

void func1(){			//这里声明了func1(),故在main()中可直接调用
    printf("http://c.biancheng.net");
    //也可以在这一行进行fun2()的声明,只要是在func2()之前就可以
    func2();
}

void func2(){
    printf("C语言小白变怪兽");
}

int main(){
    func1();	
    return 0;
}

但是错误代码C2371"func2()"重定义;不同的基类型,却不懂为何,有机会再找找原因。
to be continue -_–

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值