我面臨一個小問題,我希望你能幫助我。謝謝。C++:警告:有符號和無符號表達式(Gmake,freebsd)
以下是錯誤代碼:
FILE.cpp: In member function 'bool DragonSoulTable::ReadAdditionalApplys()':
FILE.cpp:223: warning: comparison between signed and unsigned integer expressions
,這裏是我把引擎收錄的代碼,因爲它太大了,把這些代碼在論壇 FILE.CPP
不過一個音符*爲什麼*生成警告 - 想象中的情況下m_vecDragonSoulNames有一大堆物品在其中;例如超過20億項(假設您的計算機架構上sizeof(size_t)== 4)。在這種情況下,for循環中的比較行爲會有所不同,具體取決於它是將兩個值作爲有符號還是無符號進行比較;在簽名的情況下,m_vecDragonSoulNames可能會被重新解釋爲一個負值(!),這意味着for循環會立即終止而不執行循環體 - 可能不是您期望的行爲。 – 2014-09-30 03:57:23