【发布时间】:2011-09-30 17:37:49
【问题描述】:
我试图将 long long 类型作为参数传递给函数但失败了。我可以将 5000000000 分配给 long long 变量,如下所示:
long long value = 5000000000;
但是当我尝试将该变量传递给方法时:
- (void)viewDidLoad
{
[super viewDidLoad];
long long value = 5000000000;
[self test:value];
}
-(void) test:(long long)value
{
printf("%d\n", value);
}
该值打印为 705032704 而不是 5000000000。我在调试器中验证了这一点。 705032704 值是恒定的,因此似乎正在发生某种截断。
我正要开始用这个把我的头发拉出来。有人可以帮忙吗?
谢谢, 艾伦
【问题讨论】:
-
你说得对,截断正在发生; 705032704 正是 5000000000 的低 32 位。
标签: iphone objective-c variables arguments truncation