PRB: Galat "Floating-point dukungan tidak dimuat" dengan scanf()

Gejala

Ketika aplikasi menggunakan fungsi scanf() untuk membaca nilai floating-point dari konsol ke uninitialized "float" jenis variabel global, terjadi galat "floating-point format dukungan tidak dimuat" R6002. Galat ini juga terjadi saat rutin masukan apa pun diformat digunakan untuk membaca nilai.

Penyebab

Kompiler tidak membuat referensi ke variabel __fltused yang memerintahkan linker untuk memuat modul floating-point dukungan.

Pemecahan masalah

Untuk mengatasi masalah ini, inisialisasi variabel floating-point atau menggunakan variabel di ekspresi rutin yang berisi scanf() panggilan.

Status

Perilaku ini memang disengaja. Untuk meminimalkan ukuran berkas yang dapat dijalankan, kompilator memuat floating-point dukungan hanya bila diperlukan.

Informasi lebih lanjut

Ketika modul menggunakan hanya satu rutinitas input yang telah diformat dan juga tidak menyiapkan variabel floating-point, kompilator tidak memuat floating-point dukungan.

Hapus indikasi komentar dari salah satu atau kedua dari dua baris di kode contoh di bawah ini untuk menghilangkan kesalahan R6002.

Kode sampel

   /*    * 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) ;
}

Properti

ID Artikel: 37507 - Tinjauan Terakhir: 29 Jan 2017 - Revisi: 1

Tanggapan