【发布时间】:2012-12-14 08:48:53
【问题描述】:
是的,我看到了:
如果方法返回一个结构体,如 Mac OS X ABI 函数调用指南所定义的那样,将在寄存器中返回,那么发送到 nil 的消息会为结构体中的每个字段返回 0.0。其他结构数据类型不会用零填充。
我只是不明白。
【问题讨论】:
标签: objective-c ios
是的,我看到了:
如果方法返回一个结构体,如 Mac OS X ABI 函数调用指南所定义的那样,将在寄存器中返回,那么发送到 nil 的消息会为结构体中的每个字段返回 0.0。其他结构数据类型不会用零填充。
我只是不明白。
【问题讨论】:
标签: objective-c ios
如果您使用的是最新版本的 LLVM 编译器(Xcode 4.2 或更高版本),那么可以,使用结构返回方法向nil 发送消息将产生一个零填充结构。对于CGRect,这意味着一个矩形等于CGRectZero。
来源:Greg Parker,他在 Apple 的 ObjC 运行时工作。
【讨论】:
objc_msgSend_stret之前是否将内存归零?