我们编写程序时一般有个习惯,写函数都爱把函数写到主函数的前面,
一般常用的写法:
#include<iostream>
using namespace std;
void A()
{
cout<<"函数A
";
}
void B()
{
cout<<"函数B
";
}
int main()
{
A();
B();
return 0;
}
运行结果:
现在看着很正常是吧?运行结果也对,我们一般定义函数都习惯这样写,以为这样就不用声明函数啦。
那么现在我们看下这个程序修改后这个源码是不是还可以这样?而不用声明呢?
#include<iostream>
using namespace std;
void A()
{
cout<<"函数A
";
B();
}
void B()
{
cout<<"函数B
";
A();
}
int main()
{
A();
B();
return 0;
}
此程序未声明前会报错,原因没有声明。
看到上面没?出现了报错,这时候就必须要对函数进行声明了。
声明修改后正确的源码为:
#include<iostream>
using namespace std;
void A();
void B();
void A()
{
cout<<"函数A
";
B();
}
void B()
{
cout<<"函数B
";
A();
}
int main()
{
A();
B();
return 0;
}
注意,此程序虽然修改后能正确运行但是由于在函数A中调用函数B,函数B中调用函数A,会导致无穷循环。
这个也要注意编写程序中尽量避免函数的相互调用出现混乱。