我正在 32 位系统上工作。当我尝试在单个 printf 中打印多个 64 位值时,它无法打印任何其他(即第二个、第三个……)变量值。
example:
uint64_t a = 0x12345678;
uint64_t b = 0x87654321;
uint64_t c = 0x11111111;
printf("a is %llx & b is %llx & c is %llx",a,b,c);
为什么这个 printf 不能打印所有值?
我正在修改我的问题
printf("a is %x & b is %llx & c is %llx",a,b,c);
这样做的结果是:a是12345678,b是8765432100000000,c是1111111100000000
如果我没有正确打印为值那么为什么其他值会改变?
您应该使用中定义的宏<inttypes.h>
printf("a is %"PRIx64" & b is %"PRIx64" & c is %"PRIx64"\n",a,b,c);
它很难看,但很便携。这是在 C99 中引入的,因此您需要一个兼容 C99 的编译器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)