程式碼如下
#include<stdio.h> int main(){ char* s = "123.3"; double d = atof(s); printf("%lf\n", d); return 0; }
結果總是為0.000000,而不是123.3,為什麼?
认证0级讲师
因為你沒有include stdlib.h啊(”゜ロ゜)」這是一個隱藏坑。因為你沒有包含頭文件,所以就沒有函數聲明,沒有函數聲明,則預設函式庫函數的回傳值是int型的。 你編譯時加上-Wall的話,它會很明確的告訴你沒有聲明的。
因為你沒有include stdlib.h啊(”゜ロ゜)」
這是一個隱藏坑。因為你沒有包含頭文件,所以就沒有函數聲明,沒有函數聲明,則預設函式庫函數的回傳值是int型的。
你編譯時加上-Wall的話,它會很明確的告訴你沒有聲明的。