我知道這是一個奇怪的問題,但我想知道是否有可能在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位DMD上編譯32位
- 2. 在64位Linux上編譯32位libGLEW.so
- 3. 編譯爲64/32位iOS
- 4. 從Win7編譯32位64位
- 5. Java類編譯64位32位
- 6. 將32位代碼編譯爲64位
- 7. 在64位ubuntu上編譯32位彙編程序
- 8. 在32/64位系統上使用16位指針的C++
- 9. 在64位服務中使用32位DLL的指針
- 10. 編碼/在32位和64位
- 11. 64位eclipse rcp產品不能運行在64位OS + 32位編譯和捆綁JDK 1.7 32位套件
- 12. VS COM項目編譯在32位,但在嘗試編譯64位
- 13. 在Ubuntu 32位編譯爲64位體系結構
- 14. 是否可以在64位Ubuntu下編譯32位?
- 15. 在64位linux上編譯32位python模塊(例如numpy)
- 16. 在64位機器上編譯32位matlab應用程序(C++)
- 17. SetupDiCallClassInstaller在64位機器上爲32位編譯時引發ERROR_IN_WOW64。
- 18. gcc:在32位平臺上編譯64位二進制文件
- 19. 在64位機器上編譯靜態32位Qt
- 20. 在64位系統上編譯32位二進制
- 21. 在64位機器上編譯32位python
- 22. 如何在64位系統上以32位模式編譯openSSL?
- 23. 在64位Linux上編譯32位應用程序
- 24. 在64位Debian環境中編譯32位qt源碼
- 25. 在64位Ubuntu上編譯32位Fortran程序14.04
- 26. 在OS X 10.8(64位)上交叉編譯rsync到10.7(32位)
- 27. opencv編譯64位運行在32位ubuntu
- 28. 在64位系統(Ubuntu)上編譯32位程序集
- 29. 試圖在OS X上編譯32位和64位的GNU庫
- 30. 如何在64位RHEL上編譯32位應用程序?
你應該修改這個問題來談論你真正想做的事情 - 可能比依靠指針大小在平臺之間相同的方法更好。描述目標,而不是步驟(http://catb.org/~esr/faqs/smart-questions.html#goal)。 – 2009-10-28 19:23:14
在這個問題中缺乏具體細節,很難回答。什麼是「大問題」?它如何防止指針偏移量在64位窗口中變大?即使你的問題的第一部分沒有多大意義「是否有可能在64位編譯中創建一個32位指針」......我無法弄清楚你的意思。 – 2009-10-29 12:45:21