为了更好管理代码,减少代码冗余,常把代码封装成函数的形式;
步骤
1、函数申明
为了告诉其他代码该函数的调用格式。
格式:
返回值类型 函数名(类型1 形参名1,类型2 行参名2);
注意:
写申明必须加分号
函数名一般全部小写,用下划线分隔
如果不需要返回值,写void,如果没有形参,则写void
形参即使类型相同,也要独立加类型名
2、函数定义
函数的实现代码(建议直接复制函数申明)
返回值类型 函数名(类型1 形参名1,类型2 行参名2)
{
//函数体
Return val;
}
3、 函数调用
函数名(实参);
函数传参的相关注意点:
值传递:普通变量,实参和形参单向值传递,原因是函数间不能共享同名变量
址传递:数组,函数间可以共享同一个数组,但数组长度会丢失,需要额外传递数组长度;
形参变量、函数内定义的变量都只属于它所在的函数。离开该函数就无法使用;
实参和行参之间是通过赋值的方式传递数据的(单向传递)
Return 作用是把返回数据存到一个公共数据,如果不写,读取时就会读取该区域原有的数据,得到一个垃圾数据。(即使不写return也有返回值,但值不确定)
传递数组的本质是传递数组的地址,因此无法传递数组的长度,需要额外传递(sizeof(arr)/sizeof(arr[0]))
设计函数的建议:
一个函数解决一个问题,降低错误率,提高可读性
尽量减少函数间的依赖程度(降低耦合度)
数据尽量由调用者提供,结果返回给调用者(提高通用性)
考虑非法参数,可以通过返回值的方式告诉调用者参数有误,也可以通过注释方式写明情况。(提高函数的健壮性)
更多推荐
C语言中的自定义函数
发布评论