我正在使用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