视频地址: https://www.bilibili.com/video/av73224068
定义和使用自己的函数
函数的实现的基本语法是:
返回值类型 函数名称(形参列表)
{
函数体语句
}
如我们之前所定义的判断数字奇偶的函数:
int IsEvenNumber(int nNumber)
{
if (nNumber % 2 == 0)
return 1;
else
return 0;
}
意味着:
- 有返回值,返回值类型是int
- 有一个参数,参数类型是int
函数的返回值可以是任意合法类型,只要之后函数中的return后所接的变量类型与之一致即可。
函数也可以没有返回值,需要使用void关键字声明:
void VoidFunc()
{
printf("我是一个没有返回值的函数\r\n");
printf("我的作用仅仅是打印\r\n");
}
函数的参数可以没有、1个或者多个。只需要函数调用过程所传递的参数与函数定义时参数数目是一致即可。
int AddTwoNumber(int x, int y)
{
return x + y;
}
int main(int argc, char* argv[])
{
AddTwoNumber(5, 9);
return 0;
}
函数的声明与实现分离
将函数定义取出掉函数体单独提出来,就是函数的声明,它又被称为函数原型,即:
返回值类型 函数名称(形参列表);
举例:
#include <stdio.h>
/*函数的声明*/
int AddTwoNumber(int x, int y);
int main(int argc, char* argv[])
{
int nValue = 0;
nValue = AddTwoNumber(5, 9);
printf("Sum:%d\n", nValue);
return 0;
}
/*函数的实现*/
int AddTwoNumber(int x, int y)
{
return x + y;
}
函数声明并不一定需要单独分离出,具体而言:如果函数的实现与函数调用在同一个文件中,且处在调用位置的上方,则不需要单独做函数声明。
头文件和.c文件的关系
一般,我们将函数的实现放在.c/.cpp文件中,将函数的声明放在.h文件中。
这样,只要包含对应的头文件,就能够调用对应的函数。
#include语句本质,是复制粘贴。