在接触了结构
与语句
等内容后,我们开始学习函数
Day 8 的学习中,我们对函数的定义
和声明
做一定的补充说明。
函数
:
函数定义
:是指函数的具体实现,交代函数的功能实现。
函数声明
:把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查。
告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。
函数的声明一般出现在函数的调用之前。要满足先声明后调用。
函数的声明一般要放在
头文件
中的。
注意
:对于一些老旧的编译器来说,函数声明是不带参数列表的。
以.h为结尾的头文件
内放置函数的声明,在.c源文件
内放置函数的定义。让我们用一段代码直观地区别函数定义
与函数声明
。
#include
int getMax(int, int); //函数声明
void main()
{
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
int getMax(int a, int b) //函数定义
{
if (a > b) {
return a;
}
else {
return b;
}
}
示例:
使用函数前,需要在main函数前对使用的函数进行声明
#include
int getMax(int, int);
void main()
{
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
int getMax(int a, int b)
{
if (a > b) {
return a;
}
else {
return b;
}
}
或者将函数定义在main函数的前面,则不需要声明
#include
int getMax(int a, int b)
{
if (a > b)
{
return a;
}
else {
return b;
}
}
void main()
{
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
{}
之前的内容拷贝到调用之间即可 int max( int a, int b );
//或者另一种声明格式
int max( int, int );
示例;
// 函数声明
void getMax(int v1, int v2);
int main(int argc, const char * argv[])
{
getMax(10, 20); // 调用函数
return 0;
}
// 函数实现
void getMax(int v1, int v2)
{
int max = v1 > v2 ? v1 : v2;
printf("max = %i\n", max);
}
函数声明注意点
:
// 函数声明
void getMax(int v1, int v2);
void getMax(int v1, int v2);
void getMax(int v1, int v2); // 不会报错
int main(int argc, const char * argv[])
{
getMax(10, 20); // 调用函数
return 0;
}
// 函数实现
void getMax(int v1, int v2)
{
int max = v1 > v2 ? v1 : v2;
printf("max = %i\n", max);
}