我知道這是一個奇怪的問題,但我想知道是否有可能在Solaris上使用g ++編譯64位的32位指針。最終的對象需要是64位,但是我的指針偏移量中的一個在Solaris上越來越大,如果我使用64位編譯,它在窗口中。這是一個很大的問題。我想知道是否有可能在我的64位編譯對象中創建一個32位指針。32位指針在64位Solaris編譯
1
A
回答
0
您不能更改常規指針,指針的大小是sizeof(void *)
。如果可以的話,你將在64位系統上使用32位指針做什麼?
你是指C中的指針還是你可能指向文件偏移的指針?
1
指針大小是您的目標架構的屬性,因此您不能混合和匹配32位和64位指針。我強烈建議重新考慮你的設計(這聽起來像將指針指向整數和返回的常見錯誤)。理論上你可以使用「有限延伸」偏移量,但是再次請問自己爲什麼,以及什麼是更好的方法做到這一點。
0
如果你有指針類型,那麼你不應該在64位程序中使它成爲32位。如果它只是一些與內存模型無關的偏移量,那麼您可以在不同平臺上使用不同類型的穩定大小,如uint32_t
。
0
在64位機器上「需要」32位指針是沒有意義的。我也是不明白這一行:
最終的目標將需要64位然而
我會仔細看看,並嘗試修復您的最終的bug。如果您發佈了一些示例代碼,我們可能會提供更多幫助。
相關問題
- 1. 在64位Linux上編譯32位libGLEW.so
- 2. 在64位DMD上編譯32位
- 3. 從Win7編譯32位64位
- 4. Java類編譯64位32位
- 5. 將32位代碼編譯爲64位
- 6. 在32/64位系統上使用16位指針的C++
- 7. 編碼/在32位和64位
- 8. 64位eclipse rcp產品不能運行在64位OS + 32位編譯和捆綁JDK 1.7 32位套件
- 9. VS COM項目編譯在32位,但在嘗試編譯64位
- 10. 在64位Ubuntu上編譯32位Fortran程序14.04
- 11. 在Windows 64位上運行的Matlab 32位編譯MEX文件
- 12. SetupDiCallClassInstaller在64位機器上爲32位編譯時引發ERROR_IN_WOW64。
- 13. 強制gcc在64位平臺上編譯32位程序
- 14. 在64位計算機上編譯32位非託管DLL
- 15. 在64位機器上編譯靜態32位Qt
- 16. gcc:在32位平臺上編譯64位二進制文件
- 17. 在64位機器上編譯32位matlab應用程序(C++)
- 18. 試圖在OS X上編譯32位和64位的GNU庫
- 19. 在64位系統上將Asp.NET編譯爲32位
- 20. 指針遞增差異黑白32位和64位
- 21. 將32位指針傳遞給64位COM控件
- 22. 64位程序集的32位指令
- 23. 需要在64位Redhat機器上配置/編譯/編譯32位的libxml2
- 24. C# - 在32位和64位
- 25. XOR高32位,低32位,64位數
- 26. 動態庫的鏈接問題的Solaris(32位和64位)10
- 27. 編譯32位VS 2003項目到64位
- 28. MinGW GCC - 單個32位和64位交叉編譯器?
- 29. pybind11「Python是64位,選擇編譯器是32位」
- 30. 編譯64位Linux的32位GTK +應用程序
你應該修改這個問題來談論你真正想做的事情 - 可能比依靠指針大小在平臺之間相同的方法更好。描述目標,而不是步驟(http://catb.org/~esr/faqs/smart-questions.html#goal)。 – 2009-10-28 19:23:14
在這個問題中缺乏具體細節,很難回答。什麼是「大問題」?它如何防止指針偏移量在64位窗口中變大?即使你的問題的第一部分沒有多大意義「是否有可能在64位編譯中創建一個32位指針」......我無法弄清楚你的意思。 – 2009-10-29 12:45:21