C++ 64位整型的跨平台处理

   呵呵,很少写文章。 正好这次解决一个64位整数的问题遇到了,特此记录下来。

  在windows系统中, 64位的整形可以定义为__int64, 而在linux环境下则采用C99标准定义为long long int. 因此为了适应跨平台的需要可以采用typedef定义自己的类型。

#ifndef WIN32
typedef long long int LONGLONG;
#else   //unix, linux
typedef __int64 LONGLONG;
#endif  

采用这样的定义后还需要处理赋值问题。

//win32

LONGLONG  value = ....L;  printf("%lld",value);

//Linux/unix

LONGLONG value = ...ll; printf("%I64d",value);

这样就可以在赋值,输入,输出上处理win32平台和linux平台的中文问题了。

其实,如果可以的话,还可以在赋值和输出部分定义宏来处理这种特定, 这样会比较精彩一些。就如果_TEXT宏一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值