unsigned long long 型输出的问题,高手进
程序如下,很简单
#include<stdio.h>
int main(){
unsigned long long amount = 4294967295;
unsigned long amount32 = 429496729;
printf("amount:%llu, amount32:%lu", amount , amount32 );
printf("amount32:%lu, amount:%llu", amount32 , amount );
return 0;
}
输出结果:amount:4294967295, amount32:0
amount32:429496729, amount:4294967295
第一次失败,后面的32位值被清为0,第二次成功,什么原因,不得其解。请高手解答