这篇文章主要介绍了C语言函数使用实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言函数使用实例分析文章都会有所收获,下面我们一起来看看吧。告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了函数的声明一般出现在函数的使用之前。要满足先声明后使用函数的声明一般要放在头文件中的函数的定义是指函数的具体实现,交待函数的功能实现一般写简单的求和函数,求和功能直接写在main( )函数了。把加法功能单独写成一个函数,放在主函数前面。如果将函数add放在主函数后面,则会报错,因为程序自上而下进行的,主函数执行后,发现add函数未定义,找不到。实际上,当函数代码较多时,一般免费云主机域名采用模块化编程,每个函数实现功能尽量单一,函数间要低耦合、高内聚。因此,针对上面的加单的加法函数,用带头文件的写法重写一遍。先定义源文件 test.c 、源文件 add.c和头文件 add.h当编程写了一个减法的函数给别人用,但是又不想把源码直接分享给别人,这时候就可以将代码编译成静态库(就是.lib文件)。静态库的特点:将函数编译成静态库,别人可以正常使用封装好的代码,但是又看不到源码。下面举例说明,如何生成静态库(.lib):新建VS工程,新建源文件 sub.c和 头文件 sub.h,编写一个减法函数 sub依次点击解决方案资源管理器——项目名称——右键选属性,弹出对话框。然后依次点击——配置属性——常规——项目默认值——配置类型——下拉菜单选择静态库(.lib)——应用——确定。接着点击生成——生成解决方案。最终会在工程文件夹下的——Debug文件夹——看到静态库.lib文件。用记事本打开静态库,可以看到是乱码。接下来说明如何使用别人或者自己生成好的静态库文件:(1)将函数对应的同名头文件.h文件 和 同名静态库.lib拷贝至自己的工程文件中。(2)在头文件中添加上t头文件 sub0119.h(3)在源文件中添加减法头文件引用 和静态库的引用,(4)程序运行时,会通过上面的引用将生成的静态库加载进来。在主函数直接使用 减法函数sub即可。运行程序见下图:递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量递归的主要思考方式在于:把大事化小,将问题转化为可以重复有限次的小问题解决存在限制条件,当满足这个限制条件的时候,递归便不再继续每次递归调用之后越来越接近这个限制条件接受一个整型值(无符号),按照顺序打印它的每一位。输入:1234,输出 1 2 3 4分析:打印1234可以分解成下图那样拆解,分别把不同位上的数字取出,最终把数字拆解剩最后一位时,开始打印:print(1234),数字大于9表明数字还不是个位数,于是将1234拆解成123 和 4,分别通过取余和取模操作。把取余的123再次传给函数printprint(123),数字大于9表明数字还不是个位数,于是将123拆解成12 和 3,分别通过取余和取模操作,把取余的12再次传给函数printprint(12),数字大于9表明数字还不是个位数,于是将12拆解成1 和 2,分别通过取余和取模操作,把取余的1再次传给函数printprint(1),数字小于9表明数字是个位数,也就是分解到最后一步了,这就是递归的限制条件,于是将1取模操作,打印出来代码如下所示:通过调试,我们分析整个递归程序的运行逻辑见下图,红色圆圈的1 2 3 4表示程序的执行顺序:第一次调用函数print,此时 num=1234, n>9, 满足if条件, 执行print(123), 调用函数print自身第二次调用函数print,此时 num=123, n>9, 满足if条件, 执行print(12), 调用函数print自身第三次调用函数print,此时 num=12, n>9, 满足if条件, 执行print(1), 调用函数print自身第四次调用函数print,此时 num=1, n此时函数已经拆解到最后一层了,函数执行结束返回到上一次调用的地方,绿色圆圈的1 2 3 4表示程序的返回顺序:在绿色圆圈1处,函数printf打印1后,将会返回到上一次调用print的地方,即绿色圆圈2在绿色圆圈2处,if语句已经执行完毕,按顺序执行printf(“%d”, num%10),此时num=12, 打印2。接着将会返回到上一次调用print的地方,即绿色圆圈3处在绿色圆圈3处,if语句已经执行完毕,按顺序执行printf(“%d”, num%10),此时num=123, 打印3。接着将会返回到上一次调用print的地方,即绿色圆圈4处在绿色圆圈4处,if语句已经执行完毕,按顺序执行printf(“%d”, num%10),此时num=1234, 打印4。接着将会返回到上一次调用print的地方,即主函数main中。在函数运行过程中,每调用一次函数,在内存栈中就会开辟空间存放num的值,如下面蓝色方框显示,第一次调用函数存放的1234 在最底层, 以此类推,1是最后调用函数存放的,就在最上面。在函数返回时,看绿色圆圈 1 2 3 4, num的值就从上向下取值,在绿色圆圈1处,num数值为1。打印1后,函数运行结束,存放1的空间就销毁了此时返回到绿色圆圈2里,num数值为12,打印2后,函数运行结束,存放12的空间也销毁了此时返回到绿色圆圈3里,num数值为123,打印3后,函数运行结束,存放123的空间也销毁了此时返回到绿色圆圈2里,num数值为1234,打印4后,函数运行结束,存放1234的空间也销毁了运行结果见下图:编写函数不允许创建临时变量,求取字符串的长度分析:自定义函数getlen,计算字符串 abcd,字符串以 ‘