在Objective-C中传递长篇论文?

Ala*_*ark 3 iphone variables arguments objective-c truncation

我试图将一个long long类型作为参数传递给函数并失败.我可以将5000000000分配给long long变量,如下所示:

long long value = 5000000000;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将该变量传递给方法时:

- (void)viewDidLoad
{
    [super viewDidLoad];

    long long value = 5000000000;

    [self test:value];
}

-(void) test:(long long)value
{
    printf("%d\n", value);
}
Run Code Online (Sandbox Code Playgroud)

该值打印为705032704而不是5000000000.我在调试器中验证了这一点.705032704的值是常量,所以看起来似乎发生了某种截断.

我准备用这个把头发拉出来.有人可以帮忙吗?

谢谢,艾伦

Kal*_*Kal 12

您的printf正在尝试将其打印为带符号的int而不是long long.

%lld长期使用