iT邦幫忙

0

32位元版本的應用程式如要改寫為64位元,是否很困難??

x64
匿名 2011-03-24 13:28:049545 瀏覽

通常必需做那些處理?

1 個回答

28
賽門
iT邦超人 1 級 ‧ 2011-03-24 14:18:55
最佳解答

不知道您是否要考慮程式相容於32位元及64位元環境?

如果要考慮相容, 把程式在32位元環境下開發好, 在64位元環境下一定可以執行. 或是把原來在32位元模式下開發的程式, 用Compiler以64位元模式來編譯, 也可以得到64位元可執行程式檔.

如果是只想開發單純64位元的應用程式, 有一篇IBM寫的文章可參考...http://www.ibm.com/developerworks/linux/library/l-port64.html
雖然是為Linux而寫, 但Windows環境的原則也一樣.

其中提到九個要考慮的項目:
•Declarations
•Expressions
•Assignments
•Numeric constants
•Endianism
•Type definitions
•Bit shifting
•Formatting strings
•Function parameters

基本上是64位元的定址能力和資料長度和32位元都不一樣, 所以64位元的資料型態..尤是是數值資料型態多了一些和32位元不相容的, 以及定址能力不同, 在Function的宣告上有些要注意的事項, 免定址到實體記憶體不存在的記憶體位置. 其實, 變數宣告, 也要注意相同事項.

簡單來說, 除了Compiler裏多了些64位元才能用的資料型別和定址函數外, 其他絕大多數都和32位元差不多.

但是, 有個地方要注意, 就是指標....因為指標是位址資料型別, 64位元的指標資料放到32位元的整數型別中, 一定會發生溢位錯誤.

以上提供您參考.

我要發表回答

立即登入回答