跨平台的字节对齐实现

常见的C/C++编译器:

GCC编译器:__GNUC__

Intel 编译器:__INTEL_COMPILER

Microsoft Visual studio 编译器:_MSC_VER


常见的操作系统:

Microsoft :_WIN32

Linux :__linux

Cygwin:__CYGWIN__

Apple:__APPLE__


检测系统是32位,还是64位:

#define NVM_BITS          "[%d bit] ", (sizeof(void*) == 8 ? 64 : 32) ///< used for checking 64-bit O/S


定义32字节对齐
#define DATA_ALIGN                  1                                                                 ///< use 32-bit aligned malloc/free


#if     DATA_ALIGN && _WIN32 && ( _MSC_VER > 1300 )   //windows下的字节对齐API
#define xMalloc( type, len )        _aligned_malloc( sizeof(type)*(len), 32 )
#define xFree( ptr )                 _aligned_free  ( ptr )
#else
#define xMalloc( type, len )        malloc   ( sizeof(type)*(len) )
#define xFree( ptr )                 free     ( ptr )
#endif


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值