函数
一 函数是什么
C语言对函数的定义是子程序,子程序是指是一个大型程序中的某部分代码, 由一个或多个语句块组
成。它负责完成某项特定任务,而且具备相对的独立性可以相互调用,一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库
在我们写代码的时候,有时候会重复写一段代码,而这段代码所执行的功能,操作是一样的,只是针对的对象不一样,如果将这段功能写成一个函数模块,那么在需要用到的时候调用即可,进而避免了写重复的代码,避免了重复性操作,所以以在函数A中调用函数B,又可在函数B中调用函数C,不仅如此,你还可以调用函数自身(递归)当你要用时,只需要调用它即可,在后续的修改或是维护过程中,只需要针对这一个进行修改即可
2:方便代码的维护,当我们知道哪个部分出问题后,或者需要修改某个功能,那就只需要修改那部分的代码即可
例如:
一个快递站,顾客拿一个物品想寄一个快递,文员负责输入地址信息,打包员负责物品,送货司机负责送快递
例如:
void wenyuan()
{
printf("文员接待\n");
printf("顾客下单\n");
printf("文员输入信息\n");
}
void dabaoyuan()
{
printf("打包员打包成功\n");
printf("打包员分配\n");
}
void songhusj()
{
printf("送货司机发车\n");
printf("送货司机到地点送快递\n");
printf("顾客接受成功,订单完成\n");
printf("顾客评价:送货及时,5星好评\n");
}
void guke()
{
printf("不接?你去吃屎吧!\n");
}
int main()
{
printf("顾客来发快递啦\n");
printf("1. 接客\n");
printf("0. 不接有钱任性\n");
int a = 0;
while (1)
{
scanf("%d", &a);
switch(a)
{
case 1:
wenyuan();
dabaoyuan();
songhusj();
break;
case 0:
guke();
break;
default:
printf("输入错误\n");
}
}
return 0;
}
上面每个成员都有自己独立的任务,假设顾客就是main主函数进入口,那么文员、打包员、送货司机就是相当于不同的函数
他们都有特定的任务,互不影响,如果中间出错就很容易知道在哪里出现了问题,如果文员信息输入错误,那么送货司机就送不到顾客手中
二 C语言中函数的分类
- 库函数
- 自定义函数
1. 库函数
C语言常用的库函数都有:
IO函数-------------------如:printf scanf getchar putchar
字符串操作函数-------如:strcmp strlen
字符操作函数----------如:toupper
内存操作函数----------如:memcpy
时间/日期函数---------如:time
数学函数----------------如:pow
其他库函数
当然使用库函数,必须包含 #include 对应的头文件。
下面是C语言和C++的库函数
链接: 库函数
2.自定义函数
自定义函数和库函数一样,有函数名.返回值类型和函数参数
但是不一样的是这些都是我们自己来设计,这给程序员一个很大的发挥空间
例如:
函数的类型 int
函数名 Add
函数的参数 (int a,int b)
代码作用是返回最大值:
int Add(int a, int b)
{
return a < b ? b : a;
}
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
int n = Add(a, b);
printf("%d\n",n);
return 0;
}