1.在Windows下vc定义64位不能用long long 而是要用 _int64.对于输出也是要用特定的。
# include <stdio.h> #define COMBIN_48(H16, L32) ((H16 << 32) | (L32)) int main (void) { __int64 disk_data= 0x1122 ; __int64 disk_data1= 0xaabbccdd ; __int64 disk_data3=0x0; // disk_data3 = COMBIN_48(disk_data,disk_data1); disk_data3 = (disk_data<<32)|disk_data1; printf("%I64x/n",disk_data3); // 这就是输出64位数的方法,这里x表示是以十六进制输出的。
// 当然d就是以十进制的方式输出。
return 0; }
:后记
关于printf函数输出64位数的问题,其实在window下和Linux下是不一样的:
【linux】
printf("%lld/n",a);
printf("%llu/n",a);
【windows】
printf("%I64d/n",a);
printf("%I64u/n",a);