Когда я использую переменные параметры, он хорошо работает с int и double, но когда дело доходит до float, происходит ошибка

Когда я использую переменные параметры, он хорошо работает с int и double, но когда дело доходит до float, происходит ошибка.

Вот код

void vaParamTest(int a, ...)
{
va_list ap;
va_start(ap, a);
for (int  i = 0; i < a; i++)
printf("%f\t", va_arg(ap, float));
putchar('\n');
va_end(ap);
}

Я передаю такие параметры.

vaParamTest(3, 3.5f, 8.3f, 5.1f);

0

Решение

Переменные, которые передаются в качестве аргументов переменной функции по умолчанию раскрученной, что делает все floatс в doubles. Вы никогда не можете иметь float аргумент (так же, как ты никогда не сможешь иметь char аргумент). В printf, %f всегда значит double,

10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]