對於Microsoft Visual Studio 2015 RC中的以下函數,我收到了兩個關於有符號和無符號變量比較的警告。從'uint64_t'轉換爲'unsigned int'
uint64_t findMin(vector<uint64_t> &v)
{
uint64_t min = 0;
uint64_t s = v.size();
for (uint64_t i = 0; i < s; ++i) {
if (v[i] != 0) { // WARNING
min = v[i]; // WARNING
break;
}
}
...
}
的警告
warning C4244: 'argument': conversion from 'uint64_t' to 'unsigned int', possible loss of data
,因爲至少我相信,min
和v[i]
都有uint64_t
變量,這是明顯的這是奇怪。
與RC版本有關嗎?或者背後有什麼我不知道的東西?
你的常量應該有適當的後綴。文字0默認是帶符號的int。 –
推測size_t也是uint64_t?我認爲這是索引... – JCx