CPP学习之——函数的声明与定义(3.4)
一 概述
在程序中使用函数时,你必须先声明它,然后再定义;
- 声明的目的是告诉编译器你即将要定义的函数的名字是什么,返回值的类型是什么以及函数是什么。
- 而定义则是告诉编译器这个函数的功能是什么。
- 假如我们不声明,那么该函数就不能被其他函数调用。通常我们把函数声明叫做函数原型,而把函数定义叫做函数实现。
二 示例
2.1 有声明,有定义
#include<iostream>
using namespace std;
int add(int,int);
int add(int x,int y)
{
return x+y;
}
int main()
{
cout<<add(1,2);
return 0;
}
2.2 没有声明,有定义
#include<iostream>
using namespace std;
//int add(int,int);
int add(int x,int y)
{
return x+y;
}
int main()
{
cout<<add(1,2);
return 0;
}
三 没有声明引起的问题
3.1 代码
#include<iostream>
using namespace std;
void A()
{
cout<<"函数A"<<endl;
B();
}
void B()
{
cout<<"函数B"<<endl;
A();
}
int main()
{
A();
B();
return 0;
}
3.2 异常
error: 'B' was not declared in this scope
3.3 解决
#include<iostream>
using namespace std;
void A();
void B();
void A()
{
cout<<"函数A"<<endl;
B();
}
void B()
{
cout<<"函数B"<<endl;
A();
}
int main()
{
A();
B();
return 0;
}
注:
- 实现声明函数A和函数B
- 结果:因函数A和函数B相互调用,导致死循环