今天写了一个类似printf的函数。测试时使用%d%f%s, 前面的返回参数都是对的,到了返回字符串时出错了。经过后面实验,将va_arg(ap, float)改为va_arg(ap,double)就行了。可能的原因是因为参数传递的时候,系统会自动将float类型转换为double类型进行传输,导致va_arg指针移动错误。
va_arg() 实现不定参数函数 返回参数不匹配问题
最新推荐文章于 2023-10-26 17:49:37 发布
今天写了一个类似printf的函数。测试时使用%d%f%s, 前面的返回参数都是对的,到了返回字符串时出错了。经过后面实验,将va_arg(ap, float)改为va_arg(ap,double)就行了。可能的原因是因为参数传递的时候,系统会自动将float类型转换为double类型进行传输,导致va_arg指针移动错误。