注意64位整形,int64,long long

注意64位整形,int64,long long,第1张

注意64位整形,int64,long long

在Xplorer中编译运行:

int64_t  mask = 0xffffffffffffffffLL;

if((j+64)>width)

{

printf("%x %d ",mask,j);

}

输出的结果为:60da5e90 -1

应该使用printf("%llx %d ",mask,j);

则输出正确结果:ffffffffffffffff 768

如果使用printf("%x j:%x j2:%x j3:%x  ",mask,j,j,j);测试输出:60047b00 j:ffffffff j2:ffffffff j3:300

0x300刚好是768,说明mask输出的是缓冲区的随机值,随机值之后存的是mask,j,j,j

j j2打印了mask的值,j3才输出了第一个j

另外int64_t初始化最好附上LL后缀

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/587913.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存