引用:
作者futureli
嗯! 這段話其實不完全正確喔...其實在 WinXP x64 和 Linux x64 的 long 一個是4bytes,
一個是 8bytes。關鍵不是在作業系統,而是在編譯器...也就是說...在 WinXP x64 裡用
VC 系列的 x64 編譯器 long 才是 4 bytes, 如果你在 WinXP x64 裡用 x64 的 gcc (
如果你找的到的話^^),那 long 就會是 8 bytes 而不是 4 bytes!
所以如果在 porting 時要是都用 gcc 的話,這問題就不會發生了^^。
|
您這種說法是錯的.就算你在 Windows x64 上用 gcc ..
long 一樣是 4 bytes ..
您用 google 查查什麼叫做 LLP , LP ,自己也可以實驗看看就知道了..
---附上一段說明--
64位平臺上的編譯器對int尺寸有3種處理方式
1. ILP : int, long, 和 pointer 都是 64bit。
2. LP : int 是 32bit,long 和 pointer都是 64bit。
3. LLP: int 和 long 都是 32bit,pointer 和 long long 是 64bit。
VC 遵循 LLP 模式。大部分平臺上的GCC都使用 LP 模式,但是Windows平臺上的GCC(MinGW)遵循 VC,使用LLP。
---