美文网首页
printf总是打印0

printf总是打印0

作者: 梦终无痕_311d | 来源:发表于2020-06-13 01:32 被阅读0次

好久没用 c 的 printf 输出了,然后今天调程序就遇到了一个奇怪的错误,如下:

long long n = 9999;
long long m = 8888;
printf("%d %d\n", n, m);

输出结果如下:

9999 0

想了好久都没有想出原因,最后试着增减参数,终于发现了问题。(后面才发现编译器的警告里都写清楚了,只是日常不看 warning ……)

原因

警告 C4477 “printf” : 格式字符串“ % d”需要类型“int”的参数,但可变参数 1 拥有了类型“__int64”
n 是 long long 类型,占8位!而 %d 是打印 int 整形数据的,int 只占四位,所以,第一个 %d 打印了 n 的低八位,第二个 %d 打印了 n 的高八位!(小端模式的情况下)
至于后面的 m ,直接被忽略掉了……

解决方法

直接把 %d 改成 %lld 就好了:

long long n = 9999;
long long m = 8888;
printf("%lld %lld\n", n, m);

相关文章

  • printf总是打印0

    好久没用 c 的 printf 输出了,然后今天调程序就遇到了一个奇怪的错误,如下: 输出结果如下: 想了好久都没...

  • 10-11

    printf printf "value=%s\n" "${value}" read printf“0”read ...

  • printf打印与syslog日志

    printf的归宿-数据打印到哪儿了-1 printf的归宿-数据打印到哪儿了-2 source

  • C语言陷阱

    1、当我们使用 printf 打印字符串时,要用 printf("%s", s ); 而不能用 printf( s...

  • printf和sprintf的区别

    一、printf和sprintf的区别sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。spr...

  • C语言基础知识:printf的输出格式,C/C++语言编程讲解

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决...

  • 练习题1

    练习使用printf()函数 1、利用printf()函数进行简单的输出 2、打印出简单的字符 打印一个字母A 打...

  • C 关于printf scanf的返回值的问题思考

    printf返回值的思考 其输出结果为 过程:printf先将43打印出来,然后最右边的printf返回2,对应第...

  • printf与sprintf的区别

    printf函数: 把文字格式化以后输出,如: sprintf函数: 跟printf相似,但不打印,而是返回格式化...

  • [习题3]打印 printf

    使用教材 《“笨办法” 学C语言(Learn C The Hard Way)》https://www.jiansh...

网友评论

      本文标题:printf总是打印0

      本文链接:https://www.haomeiwen.com/subject/hqgotktx.html