本人c語言純萌新一枚,編程環境是vscode+clang+mingw,安裝的時候是直接把mingw的文件無衝突合併到LLVM裏的,參照:http://www.javashuo.com/article/p-oqurwbmp-cy.html。html
今日在完成c語言老師佈置的做業的時候寫了如下代碼:git
#include<stdio.h> #include<float.h> int main(void) { double dv = 1.0 / 3.0; float fv = 1.0 / 3.0; printf("%.4f %.4f\n", dv, fv); printf("%.12f %.12f\n", dv, fv); printf("%.16f %.16f\n", dv, fv); printf("%d %d\n", FLT_DIG, DBL_DIG);
return 0; }
結果很意外的是,不管是直接插件run code仍是F5編譯均提示編譯失敗:github
In file included from exercises5.c:2: In file included from C:\Program Files\LLVM\lib\clang\9.0.0\include\float.h:31: C:\Program Files\LLVM\x86_64-w64-mingw32\include\float.h:28:15: fatal error: 'float.h' file not found
但是其餘編譯器彷佛並無這個問題,因而在谷歌娘搜到一個結果,大意爲新版本的LLVM和舊版本mingw的float.h不兼容,致使二者沒法共同發揮做用,須要把新的float.h合併過來編程
那麼解決方案以下:es5
將這個網址中的內容所有複製後覆蓋到LLVM\x86_64-w64-mingw32\include\下的float.h中,這樣mingw中的float.h就和新版本clang的float.h兼容了。spa
那麼如今問題就解決完畢了。 .c文件正確編譯並輸出瞭如下內容:插件
0.3333 0.3333 0.333333333333 0.333333343267 0.3333333333333333 0.3333333432674408 6 15
撒花~ *\(^ ▽ ^)/*code