你如何打印一个 unsigned long long int(unsigned long long int 的格式说明符)?

#include <stdio.h>
int main() {
    unsigned long long int num = 285212672; //FYI: fits in 29 bits
    int normalInt = 5;
    printf('My number is %d bytes wide and its value is %ul. A normal number is %d.
', sizeof(num), num, normalInt);
    return 0;
}

输出:

My number is 8 bytes wide and its value is 285212672l. A normal number is 0.

我认为这个意外的结果来自打印unsigned long long int。你如何printf()unsigned long long int

请先 登录 后评论

2 个回答

Adam Pierce

在 Linux 中它是 %llu 而在 Windows 中它是 %I64u

虽然我发现它在 Windows 2000 中不起作用,但那里似乎有一个错误!

请先 登录 后评论
sparkes

非标准的事总是奇怪:)

为长长部 GNU下它的<代码> 1 ,<代码> 2 或<代码> 3

和下窗口我相信它的 2

请先 登录 后评论