开发者社区> 问答> 正文

我有个接受 float 的可变参函数, 为什么 va_arg(argp, float) 不工作?

我有个接受 float 的可变参函数, 为什么 va_arg(argp, float) 不工作?

展开
收起
游客py5kcp7dd6tu6 2022-03-29 22:04:56 465 0
1 条回答
写回答
取消 提交回答
  • 参数默认晋级" 规则适用于在可变参数中的可变动部分: 参数类型为 float 的总是晋级 (扩展) 到 double, char 和 short int 晋级到 int。所以 va_arg(arpg, float) 是错误的用法。应该总是用 va_arg(arpg, double)。 同理, 要用 va_arg(argp, int) 来取得原来类型是 char, short 或 int 的参数。 基于相同理由, 传给 va_start() 的最后一个固定" 参数项 的类型不会被晋级。

    2022-03-29 22:05:17
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载