64位数据模型以及arch相关的预定义macro


64位数据模型

系统使用的64位模型是和操作系统相关的,如下图

64位数据模型对数据对齐的影响

struct tnode {
    long count;
    char class;
    struct tnode *left;
    short id;
    struct tnode *right;
}

32位下的数据对齐

64位下的数据对齐

判断当前平台的预定义macro

// Check windows
#if _WIN32 || _WIN64
#if _WIN64
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif

// Check GCC
#if __GNUC__
#if __x86_64__ || __ppc64__
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif

不同的平台arch,对64位和32位的marco定义 链接


Copyright © FengGuangtu 2017