基本认知
1) int
在16位的CPU上是16位
在32位的CPU上是32位
在64位的CPU上是64位
2) __BITS_PER_LONG vs BITS_PER_LONG
32bit / 64bit 架构中,都是
#define __BITS_PER_LONG 32
32bit / 64bit 用户空间不能依赖于 CONFIG_64BIT 宏;而需要利用编译器宏来区分。
#ifdef CONFIG_64BIT
#define BITS_PER_LONG 64
#else
#define BITS_PER_LONG 32
#endif /* CONFIG_64BIT */
针对 ARMv8 特别定义了
#ifndef BITS_PER_LONG_LONG
#define BITS_PER_LONG_LONG 64