你知道任何API可以告訴我當前操作系統(iOS和MacOSX)的弱點嗎?我們可以假設MacOSX是64位?是否有API知道當前的iOS/Mac是64位操作系統還是32位操作系統?
回答
一般情況下,您可以假定OS X是基於操作系統版本的64位。 (更具體地說,可可版本)
更重要的是,你必須問自己你想要完成什麼。通常情況下,框架可以保護您在大多數情況下不需要考慮這個問題,尤其是在Objective-C的土地上。 如果您在Objective-C的土地留下來,你可以去用簡單的宏: CGFLOAT_IS_DOUBLE(從CGGeometry.h)
NSObjCRuntime.h定義NSInteger的和NSUInteger。 宏LP64發現有表示64位整數
一般來說,如果您嘗試使用NSInteger的,NSUInteger和CGFloat的,你不需要去想它。
如果您想更詳細地瞭解核心C型尺寸,您想了解所創建的標準模型。 LP64 ILP64 LLP64 ILP32 LP32 這些表明預期的結果。你不能真的假設有一個64位的模型。 根據體系結構,您可以擁有不同的整數和浮點數最大長度。 根據系統的不同,您甚至可以仿真一個類型的長度。 http://www.unix.org/version2/whatsnew/lp64_wp.html 這些都與宏定義如下LP64
可以在CFBase.h
發現這些不過真正的問題仍然是,什麼是你想怎麼辦?
請檢查this。這可能會幫助你。
你可以看到你正在使用的系統配置文件的內核:
Choose About This Mac from the Apple () menu.
Click More Info.
Select Software in the Contents pane.
Look for "64-bit Kernel and Extensions: Yes (or No)" under the System Software Overview heading.
這些蘋果電腦在Mac OS X v10.6中默認使用64位內核。
Mac Pro (Mid 2010)
MacBook Pro (Early 2011)
iMac (21.5-inch and 27-inch, Mid 2011)
這些Mac電腦默認情況下在Mac OS X服務器v10.6中使用64位內核(它們也可以使用在Mac OS X v10.6中64位內核,但默認情況下不會使用它)。
Xserve (Early 2008) and later
Mac Pro (Early 2008) and later
Mac mini (Mid 2010)
這些Mac支持64位內核,但默認情況下不使用它。
iMac (Early 2008) and later
MacBook Pro (Early 2008 through Mid 2010)
你有任何編程方式嗎?謝謝。 – user3599379
你試過這個嗎, struct utsname un; INT解析度= UNAME(&un); 如果(RES> = 0){ 的NSLog(@ 「%s」 時,un.machine); }。 你應該導入所需的庫 即'#進口
我試過了,它可以在Mac上運行,但是在iOS上並沒有幫助。 – user3599379
- 1. 什麼數據類型是32位操作系統中的16位和64位操作系統中的32位?
- 2. 32位/ 64位操作系統?
- 3. 無論系統是32位還是64位,int都是32位還是64位?
- 4. 如何確定我的操作系統是32位還是64位?
- 5. 如果操作系統是64位
- 6. 如何確定操作系統在Go中是32位還是64位?
- 7. 在64位操作系統上編寫程序時,程序是否會運行在32位操作系統上?
- 8. 確定從32位操作系統或64位操作系統C/C++應用
- 9. 無論系統是32位還是64位,uint均爲32位?
- 10. 64位操作系統上的32位Java:JVM的數量是否有限制?
- 11. Windows 64位操作系統上的32位或64位Android SDK?
- 12. 64位操作系統安裝所需的條件並不是失敗的32位Windows操作系統
- 13. 是否可以在64位操作系統中使用32位STS?
- 14. JNA在64位操作系統上具有32位JVM
- 15. 有沒有辦法檢查應用程序的操作系統是32位還是64位?
- 16. 64位操作系統上的32位ActiveX DLL的問題
- 17. Visual Studio 2005,2008是否會受益於64位操作系統?
- 18. .net 1.1是否支持64位操作系統?
- 19. 關於64位和32位的Mac操作系統
- 20. 安裝在64位操作系統上的Windows 32位Eclipse?
- 21. 64位操作系統上的32位VC++可再發行?
- 22. VM Virtual Box 64位硬件上的32位操作系統
- 23. 32位應用程序的64位操作系統
- 24. 如何檢測Flex中的32位或64位操作系統?
- 25. 對32位系統中的64位字進行操作
- 26. 32位和64位操作系統上的Java版本
- 27. 在64位架構上的32位操作系統
- 28. 對32位和64位操作系統的不同計算
- 29. 32位操作系統上的Apache Hive
- 30. 在32位操作系統和64位操作系統之間,類java.net.InetAddress有什麼區別
爲了澄清,您是否在尋找可以在您的應用中運行的代碼,告訴您設備是64位還是您想確定當前程序的模式?因爲32位應用程序可以在64位設備上運行,所以差別很大。 – rmaddy
還有內核模式的問題。現在不太可能,但64位設備可能正在運行一個32位內核,它正在託管/管理64位進程等。 –
我想知道內核位,而不是設備位,而不是程序運行模式。例如,32位Windows可以在64位CPU上運行。但我不在乎CPU的位數,我想知道OS/Kernel的位數。 – user3599379