注意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后缀

 

posted @ 2015-10-15 10:13  mlj318  阅读(535)  评论(0编辑  收藏  举报