函数的声明
作用:告诉编译器函数的名称于如何调用函数。函数的实际主体可以单独定义
注意注意:函数的声明可以多次,但是函数的定义只能有一次。
#include <iostream>
using namespace std;
int fun(int a, int b); //这是函数的声明
int fun(int a, int b);
int fun(int a, int b);
int fun(int a, int b);
int fun(int a, int b);
int fun(int a, int b);
int fun(int a, int b) //这是函数的定义
{
return a > b ? a : b;
}
int main()
{
cout << fun(10, 20) << endl;
return 0;
}
注意:函数的声明的时候,后面会有分号;
。而在定义函数的时候,不需要分号。
这是声明
int fun(int a, int b);
这是定义
int fun(int a, int b)
{
return a > b ? a : b;
}
如果定义多次,则会报错:
#include <iostream>
using namespace std;
int fun(int a, int b);
int fun(int a, int b);
int fun(int a, int b)
{
return a > b ? a : b;
}
int fun(int a, int b)
{
return a > b ? a : b;
}
int main()
{
cout << fun(10, 20) << endl;
return 0;
}
报错:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2084 函数“int fun(int,int)”已有主体 06 函数 C:\Users\admin\Desktop\ゼロからcppを勉強します\06 函数\06 函数\06 函数的声明.cpp 9
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2065 “fun”: 未声明的标识符 06 函数 C:\Users\admin\Desktop\ゼロからcppを勉強します\06 函数\06 函数\06 函数的声明.cpp 15
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2568 “<<”: 无法解析函数重载 06 函数 C:\Users\admin\Desktop\ゼロからcppを勉強します\06 函数\06 函数\06 函数的声明.cpp 15
为什么要声明函数:
因为程序运行是一行一行执行的。如果这样写一段代码,则会报错。
#include <iostream>
using namespace std;
int main()
{
cout << fun(10, 20) << endl;
return 0;
}
int fun(int a, int b)
{
return a > b ? a : b;
}
错误C3861“fun”: 找不到标识符06 函数C:\Users\admin\Desktop\ゼロからcppを勉強します\06 函数\06 函数\06 函数的声明.cpp 5
但是,如果在 main 函数之前先告诉编译器我们有这样一个函数,则可以运行。
#include <iostream>
using namespace std;
int fun(int a, int b);
int main()
{
cout << fun(10, 20) << endl;
return 0;
}
int fun(int a, int b)
{
return a > b ? a : b;
}
那么则不会出现报错,函数可以正常运行。
函数声明的意义就是可以先写 main 函数,然后功能代码都在 main 下面。当然,也可以先写函数,在写 main函数。也就是函数的定义在 main 函数之前,那么则可以不用声明函数的存在。
:-)