Rumah > Soal Jawab > teks badan
Kod adalah seperti berikut
#include<stdio.h>
int main(){
char* s = "123.3";
double d = atof(s);
printf("%lf\n", d);
return 0;
}
Hasilnya sentiasa 0.000000, bukan 123.3, kenapa?
迷茫2017-07-05 10:47:54
Kerana anda tidak memasukkan stdlib.h ( ゜ロ゜)”
Ini adalah lubang tersembunyi. Oleh kerana anda tidak memasukkan fail pengepala, tiada pengisytiharan fungsi Tanpa pengisytiharan fungsi, nilai pulangan lalai bagi fungsi perpustakaan ialah jenis int.
Jika anda menambah -Wall semasa menyusun, ia akan memberitahu anda dengan jelas bahawa ia tidak diisytiharkan.