Objective-C连续格式说明符打印0

时间:2013-02-14 16:29:25

标签: objective-c primitive-types format-specifiers

这是我遇到的一个小问题,虽然它看起来基本简单但我找不到,但这里是代码:

int main (int argc, const char * argv[]) {
    unsigned long long ep  = 2292674165ul;
    unsigned long long ep2 = 2487148347ul;
    NSLog(@"%u", ep );
    NSLog(@"%u", ep2);
    NSLog(@"%u %u", ep , ep2);
    // a last try..
    NSLog(@"%@",[NSString stringWithFormat:@"%u %u", ep , ep2]);
}

其输出:

2013-02-14 13:26:15.968 FTPTests[5274:1307] 2292674165
2013-02-14 13:26:15.970 FTPTests[5274:1307] 2487148347
2013-02-14 13:26:15.971 FTPTests[5274:1307] 2292674165 0
2013-02-14 13:26:15.972 FTPTests[5274:1307] 2292674165 0

有人可以告诉我为什么第二个说明符打印0?我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:2)

我相信您正在使用不正确的格式说明符尝试使用%llu。编译器在编译时会发出警告。

答案 1 :(得分:2)

尝试使用%llu代替%u