在接触了结构与语句等内容后,我们开始学习函数
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);
}