c++可变参数列表---float问题

来源:互联网 发布:三级便民服务网络体系 编辑:程序博客网 时间:2024/06/08 19:59

我发现在定义可变参数函数的时候,float类型得不到正确的结果,查了资料发现如下规则:


``参数默认晋级" 规则适用于在可变参数中的可变动部分: 参数类型为 float 的总是晋级 (扩展) 到 double, char 和 short int 晋级到 int。所以 va_arg(arpg, float) 是错误的用法。应该总是用 va_arg(arpg, double)。 同理, 要用 va_arg(argp, int) 来取得原来类型是 char, short 或 int 的参数。基于相同理由, 传给 va_start() 的最后一个 ``固定" 参数项的类型不会被晋级。


记录下来免得以后忘了!



原创粉丝点击