跨平台的字节对齐实现

常见的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


你可能感兴趣的:(内存)