我正在尋找將大量代碼轉換爲64位的最佳方法。有人向我建議,我研究一些靜態代碼分析工具,如cpptest來發現可移植性問題。有人對我有什麼建議可以使用嗎?或者將代碼移植到64位的有效方法?用於發現64位可移植性問題的靜態代碼分析工具?
環境:Windows,VS2008(我知道在VS「檢測64位可移植性問題」的選項,但我需要更好)。
例如:一個工具,會拿起這個明顯的類型64位可移植性錯誤。
for (int i = 0; i < 64; i++)
{
__int64 n64 = (1 << i); // Does not generate warning
}
怎麼樣,一個_64bit便攜issue_?似乎它在移植之前已經損壞。我會更擔心'for(int i = 0; i!= 32; ++ i){unsigned long k = 1 << i; FOO(K); } - 這32個可能需要變成64,但在靜態代碼分析中很難說清楚。 – MSalters
64位編譯器是一個很好的診斷工具,只要你把警告級別設置爲11 –
參見http://stackoverflow.com/questions/4871267/what-static-analysis-tools-are-available -to-assist-in-porting-a-linux-app-to-64 -b/4888996#4888996 –