使用vs2015編譯代碼時報錯:
error C4146: 一元負運算符應用於無符號類型,結果仍爲無符號類型
原因:
由於編譯器SDL安全檢查認爲這一操作(通常是爲無符號整形取負的操作)無效而產生的。
這裏我們假設定義一個數值爲int INT,在32位機上面取值範圍是-2147483648~+2147483647,
INT變量在後面會取負,比如Temp = -INT,
編譯器認爲INT有可能大於2147483647,那麼會將INT優化爲unsigned int類型,
SDL就可能認爲我們的INT有可能取負了之後還是一樣的,畢竟是unsigned 類型,因此提示錯誤。
解決方法:
右鍵項目名稱->屬性->C/C++->常規:SDL檢查,選擇否。