如何实现CC++中的可变参数函数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计708个文字,预计阅读时间需要3分钟。
一、伪原创以下开头内容,字数不超过100字:
原开头:使用Python编写一个处理文本文件的函数,该函数读取文件内容,并统计每个单词出现的次数。
伪原创开头:利用Python语言开发一个针对文本文件的处理程序,旨在分析并记录文件中各个词汇的频次。
一、变长参数函数
头文件:#include <stdarg.h>
函数声明
int add(int count, ...);
函数定义
int add(int count, ...) { va_list va; va_start(va, count); int sum = 0; for (int i = 0; i < count; i++) sum += va_arg(va, int); va_end(va); return sum; }
函数调用
int main() { cout<<add(5, 1, 2, 3, 4, 5)<<endl;//输出15 return 0; }
二、C++11的新特性,变长参数模板。
边长参数模板相当于一个模板的递归展开模型,但是它不是递归的。使用的时候,要定义一个“递归”的出口,然后定义一系列的操作,操作的是以“递归”的方式进行的。
递归函数方式展开,模板推导的时候,一层层递归展开,最后到没有参数时用定义的一般函数终止。
本文共计708个文字,预计阅读时间需要3分钟。
一、伪原创以下开头内容,字数不超过100字:
原开头:使用Python编写一个处理文本文件的函数,该函数读取文件内容,并统计每个单词出现的次数。
伪原创开头:利用Python语言开发一个针对文本文件的处理程序,旨在分析并记录文件中各个词汇的频次。
一、变长参数函数
头文件:#include <stdarg.h>
函数声明
int add(int count, ...);
函数定义
int add(int count, ...) { va_list va; va_start(va, count); int sum = 0; for (int i = 0; i < count; i++) sum += va_arg(va, int); va_end(va); return sum; }
函数调用
int main() { cout<<add(5, 1, 2, 3, 4, 5)<<endl;//输出15 return 0; }
二、C++11的新特性,变长参数模板。
边长参数模板相当于一个模板的递归展开模型,但是它不是递归的。使用的时候,要定义一个“递归”的出口,然后定义一系列的操作,操作的是以“递归”的方式进行的。
递归函数方式展开,模板推导的时候,一层层递归展开,最后到没有参数时用定义的一般函数终止。

