为什么这个程序:
#include <stdio.h>
#include <Foundation/NSDate.h>
int main() {
printf("%p\n", [NSDate distantPast]);
return 0;
}
在 64 位机器上返回错误指针? (在我的例子中是 0xc22d63c8c500000d)
最佳答案
它是一个标记指针 - 这些指针设置了最低有效位,其他位包含类型和值。它们为某些类型提供了紧凑的表示,从而避免了内存分配。欲了解更多详情,请参阅Mike Ash's blog article
关于objective-c - [NSDate distancePant] 返回的错误指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16958382/