ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
292237 Топик полностью
Сергей Борщ (16.12.2011 12:06, просмотров: 125) ответил ++ на У меня printf("%f", double) печатает правильное значение. printf("%f", float) не правильное. Как я понял, это из -за того, что va_arg(float) gcc рассматривает как va_arg(double). Gcc собирал сам. Как победить?
Должно быть va_arg(double). Компилятор, в соответствии со стандартом, должен привести float к double при вызове функции с переменным числом аргументов. Проц случайно не big-endian? Тогда va_arg(float) будет вынимать не ту половину от double. Кажется так.