我在gcc 4.4.1中使用Code::Blocks,似乎无法从我的c代码中打印64位有符号整数。
此代码:

long long longint;

longint = 0x1BCDEFABCDEFCDEF; /* 2003520930423229935 */
printf("Sizeof: %d-bit\n", sizeof(longint) * 8);     /* Correct */
printf("%llx\n", longint);                           /* Incorrect */
printf("%x%x\n", *(((int*)(&longint))+1), longint);  /* Correct */
printf("%lld\n", longint);                           /* Incorrect */

产生输出:
Sizeof: 64-bit
cdefcdef
1bcdefabcdefcdef
-839922193

64位算法似乎工作正常:
longint -= 0x1000000000000000;
printf("%x%x\n", *(((int*)(&longint))+1), longint);

给予:
bcdefabcdefcdef

我遗漏了什么吗?

最佳答案

看看%I64d是否有帮助。%lldlong long int来说很好,但在windows ide上有时情况会变得非常不同

关于c - 如何在GCC 4.4.1中打印64位整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10222899/

10-11 04:17