C语言编程实战-3-函数模板.doc

C语言编程实战-3-函数模板.doc

ID:50824795

大小:36.95 KB

页数:2页

时间:2020-03-15

C语言编程实战-3-函数模板.doc_第1页
C语言编程实战-3-函数模板.doc_第2页
资源描述:

《C语言编程实战-3-函数模板.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、函数模板在C++中,有模板一说,将一些处理逻辑相同只是数据类型不同的方法写成模板类或者模板函数,避免重复开发和冗余代码。在C语言中,能否实现同样的功能呢?答案是肯定的。程序任务:写三个函数,分别实现对整数、浮点、双浮点数组的求和计算。通常,我们最容易想到的是独立写三个函数求和函数,分别处理不同的数据类型。当代码写完后,你会发现,三个函数除了传入的参数与返回值数据类型不同外,其它都一致,这想当于同一份逻辑写了三次。在C语言编程实战1中,我们讲解了如何通过回调函数的方式来消除冗余的逻辑,回调函数理论上可以实现我们本节的编程任务,但比较

2、别扭(你可以去尝试)。今天介绍使用“函数模板”的方式来达成目标。代码如下:#include#defineDECLARE_SUM_FUN(type)typetype##_sum(typea[],intcnt){inti;typers=a[0];\for(i=1;i

3、*argv[]){inta[3]={1,2,3};floatb[3]={1.1,2.2,3.3};doublec[3]={1.11,2.22,3.33};printf("%d%f%f",int_sum(a,3),float_sum(b,3),double_sum(c,3));return0;}在示例代码中,我们写了一个DECLARE_SUM_FUN宏,它有一个参数type,用于指定数据类型。宏的内容是一个类似函数的东西,这就是所谓的函数模板。这个函数模板提供了数组求和的逻辑。紧接着,我们使用了三行代码:DECLARE_SUM_

4、FUN(int);DECLARE_SUM_FUN(float);DECLARE_SUM_FUN(double);实际上,这三行代码都是预编译内容,在对程序进行编译的时候,编译器会将其展开成真正的代码内容,如DECLARE_SUM_FUN(int);展开后的代码是:intint_sum(inta[],intcnt){inti;intrs=a[0];for(i=1;i

5、去打理。因此我们在主函数中能够直接调用int_sum,float_sum与double_sum。总结:1C语言不支持函数模板,所谓的函数模板是通过宏来实现的。2函数模板很好地实现了只写一处统一逻辑,处理不同类型数据的目的。3使用函数模板与不使用函数模板写重复逻辑在编译后的代码是一样的,函数模板没有改变程序的运行效率,只是将那些重复代码的低级工作交给了编译器来处理。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。