1、问题
编译可变参数函数里面有va_arg函数的时候提示这个错误
expanded from macro 'va_arg' #define va_arg(ap, type)
2、原因
我没有考虑“默认参数提升”问题
如果一个函数的形参类型未知, 例如使用了Old Style C风格的函数声明,或者函数的参数列表中有 ...,那么调用函数时要对相应的实参做Integer Promotion,此外,相应的实参如果是float型的也要被提升为double类型, char 要提升为int类型,这条规则称为Default Argument Promotion。
我的代码是这样写的
va_arg(arg, float)
3、如何修改代码
va_arg(arg, double)