为了更好管理代码,减少代码冗余,常把代码封装成函数的形式;

       

        步骤

            1、函数申明

                为了告诉其他代码该函数的调用格式。

                格式:

                    返回值类型  函数名(类型1 形参名1,类型2 行参名2);

                注意:

                写申明必须加分号

                函数名一般全部小写,用下划线分隔

                如果不需要返回值,写void,如果没有形参,则写void

                形参即使类型相同,也要独立加类型名

            2、函数定义

                函数的实现代码(建议直接复制函数申明)

                返回值类型  函数名(类型1 形参名1,类型2 行参名2)

                {

                    //函数体

                    Return val;

                }


 

          3、 函数调用

                函数名(实参);

                   

            函数传参的相关注意点:

                值传递:普通变量,实参和形参单向值传递,原因是函数间不能共享同名变量

                址传递:数组,函数间可以共享同一个数组,但数组长度会丢失,需要额外传递数组长度;

                形参变量、函数内定义的变量都只属于它所在的函数。离开该函数就无法使用;

                实参和行参之间是通过赋值的方式传递数据的(单向传递)

                Return 作用是把返回数据存到一个公共数据,如果不写,读取时就会读取该区域原有的数据,得到一个垃圾数据。(即使不写return也有返回值,但值不确定)

                传递数组的本质是传递数组的地址,因此无法传递数组的长度,需要额外传递(sizeof(arr)/sizeof(arr[0]))



 

设计函数的建议:

    一个函数解决一个问题,降低错误率,提高可读性

    尽量减少函数间的依赖程度(降低耦合度)

    数据尽量由调用者提供,结果返回给调用者(提高通用性)

    考虑非法参数,可以通过返回值的方式告诉调用者参数有误,也可以通过注释方式写明情况。(提高函数的健壮性)

更多推荐

C语言中的自定义函数