問題描述:
在用Visual Studio 2013寫程序時,將一個負數賦值給int導致編譯錯誤:error C4146: 一元負運算符應用於無符號類型,結果仍為無符號類型。
原因:
工程 -> 屬性 -> C++ -> 常規 -> SDL檢查,設置為否,重新編譯即可。
SDL:
Security Development Lifecycle,安全開發生命周期檢查,微軟在VS2012新推出的東西,為了能更好的監管開發者的代碼安全,如果勾選了這一項則將嚴格按照SDL的規則編譯代碼,會有一些以前常用的函數無法通過編譯。