今天在看C的教程的時候,用VS2013寫了一小段代碼 scanf("%f",&w);
提示需要在預編譯器里添加 _CRT_SECURE_NO_WARNINGS, 百度了下,發現要么用 scanf_s 來代替scanf,要么就添加這個定義
原因是,VS針對scanf的不安全性,又包了一個scanf_s的函數 ,定義里,多了一個長度的參數, scanf_s("%s",buf,sizeof(buf));
這樣不會導致內存溢出錯誤(比如只能接受4個長度的數組,輸入的時候卻輸入了6個長度)
(我也沒明白,這個溢出會有什么異常)
GCC里直接編譯,scanf,不會有錯誤提示的,這個錯誤是Windows專有的.