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);