printInts() 的情况下 , 你必须信任调用者作为第一个参数传递正确数量的参数 。在 debugOut() 的情况下,你必须信任调用者在字符数组后传递的参数数量与字符数组中的格式化代码数量相同 。va_arg() 接受一个类型,用它来解释其当前位置的值 。然而,你可以告诉 va_arg() 将值解释为任何类型 。它无法验证正确的类型 。警告:避免使用 C 风格的变长参数列表 。建议传递一个std::array或vector的值、使用初始化列表,或者使用类型安全的变参模板来实现变长参数列表 。
【C语言变长参数及其陷阱】
推荐阅读
- 选择适合微服务的编程语言,让你的工作事半功倍!
- 掌握C++模板的艺术:类型参数、默认值和自动推导
- springboot-如何集成Validation进行参数校验
- Go语言实现GoF设计模式:适配器模式
- 编程语言大比拼:Python、Java、C、C++、Go 实现 'Hello World' 和九九乘法表"
- Go语言字符串拼接方式与性能比较,分析过没?
- Go 语言字符串使用方式与技巧
- vivo x80参数配置详细,vivo x80 pro拍照dxomark排名
- cdr如何设置颜色参数,cdr应该咋得才能吸取颜色
- C 语言变长参数及其陷阱
