目录
1、可变参数函数
(1)定义
可变参数函数的可变参数一般使用省略号表示,如下:
void func(int a,...);{}
(2)常用使用场景
a> 在宏函数中使用可变参数,可以重定义输出打印函数。
#include <iostream>
#define LOG(fmt,...) printf("hello " fmt,__VA_ARGS__)
int main()
{
LOG("world%s! \n","");
LOG("%s! \n","China");
return 0;
}
运行结果如下:
也可参考下面的链接:
c/c++宏函数的定义与使用(宏定义函数)(macro definition)_c++宏定义函数_Dontla的博客-CSDN博客
整理:C/C++可变参数,“## __VA_ARGS__”宏的介绍和使用_##__va_args___bat67的博客-CSDN博客
C++中可变参数宏定义用法实践_c++ 宏参数_zhanghm1995的博客-CSDN博客
b> 在普通函数使用可变参数,可以适配不同的参数个数。
用法可以参考:c++中的省略号_c++省略号_万里归来少年心的博客-CSDN博客
中级C++11:定位new、default、模板可变参数包、emplace_back、lambda表达式_Kevlavik的博客-CSDN博客
c> 在线程池的任务队列中使用可变参数,可以适配不同的参数的线程任务函数。
用法可参考:基于c++11的100行实现简单线程池_c++100行程序运行_6plus的博客-CSDN博客
2、template模板用法
模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。常用的模板用法有容器(vector,map,,,,,)。
模板用法可参考: