首先函数是什么?
函数是用来实现一个功能的最基本的单元。
主函数
而我们最常见的函数就是main函数,main函数是程序最开始的地方在C程序中也是不能缺少的,因为程序在执行过程中会首先寻找你的主函数也就是main函数
库函数
而类似于printf scanf for 这一类函数被称之为库函数
为什么要使用函数?
函数可以帮助我们实现特定的功能类似像printf函数就是帮助我们将就是将我们想打印的数据内容打印到屏幕上。一些库函数可以帮助我们更高效的完成一些工作。或者我们自己编写一个函数去完成一个特定的任务,让代码更加的条理化和可读性,以及在写一些项目时可以更容易对自己的代码进行修改或者完善,举个栗子如果有很多两个变量相加这些重复计算我们就可以写一个相加的函数既可以快速相加在后期对功能也可以进行修改,非常的方便。既然函数这么方便那么怎么创建函数呢?
函数的创建和使用
函数创建:
返回类型 eg:int char
函数名:eg: add
形参声明 : eg (int x,int y)
如果函数在创建过程中没有返回类型的情况下回默认为int 类型
函数名的声明不能和形参声明相同
举个判断 最大值 得栗子
#include <stdio.h>
int max(int x, int y);
int main()
{
int x = 1;
int y = 4;
int max2 = max(x, y);
printf("x,y的最大值是%d\n", max2);
int a = 7;
int b = 4;
int max1 = max(a, b);
printf("a,b的最大值是%d", max1);
}
int max(int x, int y)
{
return (x > y) ? x: y;
}
上述栗子函数的返回值需要写在return才能将值给传递回来否则当函数结束函数里面的变量都会被销毁,或者可以在函数内部直接打印出来可以不返回。
如果不需要返回值的话可以使用void类型而且注意形参和实参名字是可以相同的是不会报错的
如果要调用通文件下不同.c文件的函数的话可以使用 extern
上下两个图关联
而当使用static修饰max函数后只能在本函数内使用是无法在其他函数调用的
函数的传参
函数在传参时需要注意所传参数的类型是否与函数创建时形参声明相同
int x = 10;
int y = 4;
int max2 = max(x, y);
上面x 和 y 都是int 类型
int max(int x, int y)
{
return (x > y) ? x : y;
}
而在创建max这个函数的时候用的也是int类型,两个类型相同.
创建什么样的函数
函数需要具有使用通用性
1.例如上面栗子中求最大值只要传两个int类型的值都可以使用那个函数来判断最大值如果返回类型是int就需要一个变量去接收返回值如果不需要返回则可以直接在函数内部打印谁是最大值。
2.执行一个功能例如需要两个数相加然后返回他们之间的和这样的情况下就可以写一个专门用来求两个数的和的函数
3.需要大量的重复执行但代码又很复杂这样的情况下可以写一个函数只需要传参数就可以帮你重复执行你想要的操作可以节省很多时间和代码长度。
当然在函数传参时尽量将传参的数量控制在五个以内,参数太多可能会将函数类型和顺序搞反
函数要具有功能单一性
函数需要具有单一性只实现和执行这一个功能这样在后期测试的情况下可以很方便的调用某一个功能如果功能过多导致自己只想要某一个功能单数因为函数将这几个功能集合在一起就不能单独使用了。
这个max函数仅仅用来判断两个数的大小
注意
1.
警告
在使用没有对函数进行声明的函数时,虽然程序没有语法上的错误但是,可能会存在某些潜在的错误,大多数编译器会爆出警告信息。
函数创建可以创建在main函数前面这样可以不对函数进行声明方便使用当需要单独创建一个文件存放自己写的函数需要对自己写的函数进行储存或者将函数创建在main函数后面的情况下也需要对函数进行声明为了告诉计算机你有这个函数否则计算机会认为你这个函数未被定义而报错。按照语法来讲函数创建在main函数之后需要对函数进行声明才能调用但是在Vs2022和devc++测试的时候是不需要的但是我们尽量要按语法进行书写避免出错。
2.
函数需要避免具有记忆否则在使用函数的时候可能会导致一些无法预料的后果而且不利于后期的修改和维护,具有记忆可能是使用了static来改变变量的生命周期、
最后
怎么使用库里面的函数
在使用库里面函数时首先需要引用头文件例如我们用printf这个函数时需要引用
#include <stdio.h>
这个头文件
当使用一些不包括在<stdio.h>这个库里面的函数时需要包含对应的库函数例如
使用memset这个函数就需要包含<string.h>这个库
包含库函数原型声明的<stdio.h>称为头文件,取得头文件内容的#include 这个指令称为文件包含指令
只有在调用对应的库时才能使用该函数。
简单对函数是什么为什么要用函数怎么样使用函数和使用函数注意什么做了简单的总结,可能会有问题请多多包涵