c - 两个无符号长整型的 printf 奇怪问题

标签 c printf

我有这段代码(我在 ansi c 中使用大文件支持)

unsigned long int tmp,final
final=1231123123123213
tmp=final;
    printf("%llu %llu  \n",final,tmp);
    printf("%llu  \n ",tmp);

它打印

1231123123123213 0
1231123123123213

我不明白

最佳答案

unsigned long int 一起使用的格式说明符是 %lu。您正在使用 %llu,它是 unsigned long long int 的格式说明符。您的代码的行为未定义。

您需要决定您要做什么。使用正确的格式说明符(以匹配类型),或使用正确的类型(以匹配格式说明符)。

关于c - 两个无符号长整型的 printf 奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3655249/

相关文章:

c - “inline __attribute__((always_inline))” 在函数中是什么意思?

c++ - 使编辑控件透明 WinAPI (win32)

c - 强制 printf 使用两个字符

c - 如何将整数变量中的数字分配给字符串

c++ - std::cout 和 printf 数组

c - 数组初始值设定项必须是初始值设定项列表或宽字符串文字

c - 是否可以创建像 DrawFocusRect() 这样的 XOR 笔?

c - 简单套接字监听器和线程内存泄漏

c - printf 只打印 "1537"而不是整数的值

c - printf 不产生输入值