我正在使用Objective-C NSMethodSignature/@encode工具來執行一些跨語言數據類型轉換,這意味着我需要能夠以編程方式將值複製到以@encode()格式描述的結構中。例如,我可能有4個浮標,需要將它們插入到一個CGRect中,該CGRect是一個包含2個結構的結構,每個結構每個包含2個浮點。在@encode術語中,類型是這樣的:iPhone OS上的結構對齊的確切規則是什麼?
{CGRect={CGPoint=ff}{CGSize=ff}}
爲此,我需要能夠猜測結構佈局只知道原始結構成員的數據類型 - 在這種情況下4個浮點。
從歷史上看,ARM結構對齊有兩種不同的約定。一種是將結構的所有成員對齊到滿足最大成員的邊界大小。另一種方法是根據每個成員的數據類型調整適合邊界大小的所有成員。
在ARM和x86/x86_64上的OS X/iPhone OS中使用哪種?
我誤解了你正在嘗試做的事情,並在仔細檢查後發現我仍然沒有很好的把握。你能解釋更多關於你如何嘗試使用這些信息嗎?你是否試圖動態創建另一種語言的結構?你是否試圖將數據從一個移動到另一個? – 2008-10-22 17:51:14