调试过程中,经常会出现一些意想不到的情况。
当我从32位系统迁移代码到64bit下时,指针地址的大小在编译器的变化下,就不一样了:
64位指针地址默认8个字节;
32位指针地址默认4个字节;
当调试过程中出现int型数据返回值时,调试一直返回负值,虽然经过查验是第三方返回数据问题,但还说记录一些调试心得。总结是:
能用无符号的都采用无符号数据,不要节省unsigned关键字。
负数转换问题:
众所周知-1是0xffffffff
那么-1342076672的十六进制?
1,负数十六进制减一
0x4ffe 7700 -1 = 0x4ffe 76ff
2,取反 0xb0 01 89 00
所以-1342076672的十六进制是 0xb0 01 89 00
注:转载请注明出处。QQQQ