首页 > 其他 > 详细

定义函数声明误区和函数相互调用导致的问题

时间:2014-04-27 15:39:33      阅读:554      评论:0      收藏:0      [点我收藏+]

我们编写程序时一般有个习惯,写函数都爱把函数写到主函数的前面,

一般常用的写法:

bubuko.com,布布扣
#include<iostream>
using namespace std;
void A()
{
    cout<<"函数A\n";
}
void B()
{
    cout<<"函数B\n";
}
int main()
{
    A();
    B();
    return 0;
}
bubuko.com,布布扣

运行结果:

bubuko.com,布布扣

现在看着很正常是吧?运行结果也对,我们一般定义函数都习惯这样写,以为这样就不用声明函数啦。

那么现在我们看下这个程序修改后这个源码是不是还可以这样?而不用声明呢?

bubuko.com,布布扣
#include<iostream>
using namespace std;
void A()
{
    cout<<"函数A\n";
    B();
}
void B()
{
    cout<<"函数B\n";
    A();
}
int main()
{
    A();
    B();
    return 0;
}
bubuko.com,布布扣

 

此程序未声明前会报错,原因没有声明。

bubuko.com,布布扣

看到上面没?出现了报错,这时候就必须要对函数进行声明了。

声明修改后正确的源码为:

bubuko.com,布布扣
#include<iostream>
using namespace std;
void A();
void B();
void A()
{
    cout<<"函数A\n";
    B();
}
void B()
{
    cout<<"函数B\n";
    A();
}
int main()
{
    A();
    B();
    return 0;
}
bubuko.com,布布扣

注意,此程序虽然修改后能正确运行但是由于在函数A中调用函数B,函数B中调用函数A,会导致无穷循环。

这个也要注意编写程序中尽量避免函数的相互调用出现混乱。

 

 

定义函数声明误区和函数相互调用导致的问题,布布扣,bubuko.com

定义函数声明误区和函数相互调用导致的问题

原文:http://www.cnblogs.com/xingyunblog/p/3693311.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!