PRB: "Floating-point поддръжка не е заредена" грешка с scanf()

Симптоми

Когато приложението използва функцията scanf() за четене с плаваща запетая стойност от конзолата в неинициализирана "float" тип глобална променлива, R6002 "плаваща формат не зарежда" грешка. Тази грешка възниква при всяко форматиран рутинните се използва за четене на стойност.

Причина

Компилатор генерира препратка към __fltused променлива, която указва linker за зареждане на модул плаваща поддръжка.

Решение

За да заобиколите този проблем, инициализира плаваща променлива или използвайте променливата в израз в рутинни, съдържащ scanf() повикване.

Статус

Това поведение е очаквано. За да намалите размера на изпълнимия файл, компилатор зарежда плаваща поддръжка само когато е необходимо.

Допълнителна информация

Когато модул използва само един от форматиран въвеждане съчетания и също не се инициализира променлива с плаваща запетая, компилатор зарежда плаваща поддръжка.

Премахнете коментар указание от едната или и двете от два реда по-долу за отстраняване на грешка R6002 примерен код.

Примерен код

   /*    * Compile options needed: none
*/

#include <stdio.h>
float x ;

main()
{
// Remove the comment from the next line to eliminate the error.
// x = 2.3 ;

scanf ("%f", &x) ;

// Remove the comment from the next line to eliminate the error.
// printf ("%f\n", x) ;
}

Свойства

ИД на статията: 37507 – Последен преглед: 16.01.2017 г. – Редакция: 1

Обратна връзка