织梦CMS - 轻松建站从此开始!

罗索

__int64的printf问题

落鹤生 发布于 2012-02-27 11:40 点击:次 
# include stdio . h # ifdef _WIN32 typedef unsigned __int64 uint64_t ; # else typedef unsigned long long uint64_t ; # endif typedef unsigned int uint32_t ; typedef unsigned short uint16_t ; typedef unsigned char uint8_t ; int main ( int argc , char
TAG:

#include<stdio.h>

#ifdef _WIN32
typedefunsigned __int64 uint64_t;
#else
typedefunsignedlonglonguint64_t;
#endif

typedefunsignedintuint32_t;
typedefunsignedshortuint16_t;
typedefunsignedcharuint8_t;

int main(int argc,char*argv[])
{
  uint32_t t321, t322, t323;
  uint64_t t641, t642, t643;
  uint8_t*p;

  uint8_t t[64]=
    {
        0x4E, 0x7C, 0x00, 0x00, 0x00, 0x00,
        0x4E, 0x7C, 0x00, 0x00, 0x00, 0x00,
        0x04, 0x00, 0x00, 0x00, 0x00, 0x00
    };

  printf(
    "sizeof(uint64_t) = %d\n"
    "sizeof(uint32_t) = %d\n"
    ,sizeof(uint64_t),sizeof(uint32_t));

  p = t;
  t321 =*(uint32_t*)p; p += 6;
  t322 =*(uint32_t*)p; p += 6;
  t323 =*(uint32_t*)p; p += 6;

  printf("t321[%X].%d t322[%X].%d t323[%X].%d\n"
    , t321, t321, t322, t322, t323, t323);

  p = t;
  t641 =*(uint32_t*)p; p += 6;
  t642 =*(uint32_t*)p; p += 6;
  t643 =*(uint32_t*)p; p += 6;

#ifdef _WIN32
  printf("t641[%I64X].%I64d t642[%I64X].%I64d t643[%I64X].%I64d\n"
    , t641, t641, t642, t642, t643, t643);
#else
  printf("t641[%llX].%lld t642[%llX].%lld t643[%llX].%lld\n"
    , t641, t641, t642, t642, t643, t643);
#endif

  t641 = 0x1122334455667788;

#ifdef _WIN32
  printf("%I64X %I64d \n", t641, t641);
#else
  printf("%llX %lld \n", t641, t641);
#endif

  return 0;
}

在进行移植的时候可能用的上的:

#ifdef _WIN32

#  define APR_UINT64_T_HEX_FMT     "llx"

#else

#  define APR_UINT64_T_HEX_FMT     "I64x"

#endif



example:

     sprintf(buf, "%" APR_UINT64_T_HEX_FMT, var);



#define HOST_WIDEST_INT_PRINT_DEC       "%I64d"

#define HOST_WIDEST_INT_PRINT_UNSIGNED  "%I64u"

#define HOST_WIDEST_INT_PRINT_HEX       "0x%I64x"

(zorru)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201202/15761.html]
本文出处:百度博客 作者:zorru 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容