函数和变量一样,定义和声明是可以分开的,我们一般将只需要包含函数原型的函数声明集中放在头文件中,然后通过预处理命令来调用自定义函数库中的函数,这样可以有效的避免函数重定义的问题。
函数的重定义
//函数的重定义 //作者:分解机226 #includeusing namespace std; int bl(int a,int b) { return a + b; } int bl(int a, int b) { return a + b; } int main() { cout << bl(5, 6); }
运行结果
上面的代码展示了函数的重定义的问题,报错的原因是因为有两个相同的函数定义,参数和返回值也一样,编译器在编译的时候就不知道到底该返回那个函数体的返回值,
函数的声明就不会产生这样的问题,一个文件中只要存在函数声明,编译器就知道在这个文件中的这个函数是可用的,然后在链接的时候会再去其他文件中找有不有这样的函数。
函数的重复声明
//函数的重复声明 //作者:分解机226 #includeusing namespace std; int bl(int a,int b) { return a + b; }//定义一个函数 int bl(int a, int b);//声明一个函数 int bl(int, int);//声明一个函数 int main() { cout << bl(5, 6); }
运行结果
在上例看来代码可以正常的运行,和变量一样,函数的定义和函数的声明的区别就是有不有函数体,有函数体的就是函数的定义,没有函数体的就是函数声明。
函数也可以定义在另一个文件中
自定义函数头文件(.h文件)
int bl(int a, int b)
{
return a + b;
}
主函数cpp文件
//函数的重复声明 //作者:分解机226 #include#include "dj.h"//调用自定义的函数头文件 using namespace std; int main() { cout << bl(5, 5); }
运行结果
当我们需要编写较大的程序时,就可以将程序使用这样的方法来让程序看起来规范明了。



