不定参数使用 C/C++的不定参数 C++的不定参数(C++11)12345678910111213#include <iostream>template<typename... Args>void print(Args... args) { // 使用C++11的pack expansion来展开参数包 (std::cout << ... << args) << '\n';}int main() { print("123","456",789); return 0;} 宏的不定参数(C99)注意,单行注释没法注释\连接符 12345678910111213#include <cstdio>// 宏定义中加入了do { ... } while (0)结构,不会引入额外的语句结束符(如分号)。// 宏不定参数,##确保当没有参数时,删除多余的逗号。并加换行,以便输出更清晰#define LOG(format, ...)do { \ printf(format, ##__VA_ARGS__);\ printf("\n");\}while (0)int main(){ LOG(""); return 0;} C风格的va_list1234567891011121314151617181920#include <iostream>#include <cstdarg>void print(int num, ...) { va_list args; va_start(args, num); for (int i = 0; i < num; ++i) { std::cout << va_arg(args, int) << " ";//只接受整形 } va_end(args); std::cout << '\n';}int main() { print(2,1,5);//使用比较受限,需要指明个数 return 0;} C++ 不定参数使用 https://weihehe.top/2024/09/14/不定参数使用/ 作者 weihehe 发布于 2024年9月14日 许可协议 工厂模式 上一篇 宏日志和UUID 下一篇