系统配置#
构建 NumPy 时,系统配置信息会被记录下来,并可供使用 NumPy C API 的扩展模块使用。这些信息主要定义在 numpyconfig.h 中(包含在 ndarrayobject.h 中)。公共符号以 NPY_* 为前缀。NumPy 还提供了一些函数用于查询当前平台的信息。
为了私有使用,NumPy 还在 NumPy 的 include 目录中构建了一个 config.h 文件,NumPy 不会导出它(即使用 NumPy C API 的 Python 扩展将无法看到这些符号),以避免命名空间污染。
数据类型大小#
NPY_SIZEOF_{CTYPE} 常量被定义,以便预处理器可以获取 sizeof 信息。
- 
NPY_SIZEOF_SHORT#
- sizeof(short) 
- 
NPY_SIZEOF_INT#
- sizeof(int) 
- 
NPY_SIZEOF_LONG#
- sizeof(long) 
- 
NPY_SIZEOF_LONGLONG#
- sizeof(longlong),其中 longlong 在平台上进行了适当定义。 
- 
NPY_SIZEOF_PY_LONG_LONG#
- 
NPY_SIZEOF_FLOAT#
- sizeof(float) 
- 
NPY_SIZEOF_DOUBLE#
- sizeof(double) 
- 
NPY_SIZEOF_LONG_DOUBLE#
- 
NPY_SIZEOF_LONGDOUBLE#
- sizeof(longdouble) 
- 
NPY_SIZEOF_PY_INTPTR_T#
- 指针 - void *和- intptr_t/- Py_intptr_t的大小。
- 
NPY_SIZEOF_INTP#
- 此平台上 - size_t的大小(- sizeof(size_t))
平台信息#
- 
NPY_CPU_X86#
- 
NPY_CPU_AMD64#
- 
NPY_CPU_IA64#
- 
NPY_CPU_PPC#
- 
NPY_CPU_PPC64#
- 
NPY_CPU_SPARC#
- 
NPY_CPU_SPARC64#
- 
NPY_CPU_S390#
- 
NPY_CPU_PARISC#
- 平台的 CPU 架构;上述定义中只有一个被定义。 - 定义在 - numpy/npy_cpu.h
- 
NPY_LITTLE_ENDIAN#
- 
NPY_BIG_ENDIAN#
- 
NPY_BYTE_ORDER#
- GNU Libc 的 - endian.h宏的可移植替代品。如果是大端序,- NPY_BYTE_ORDER==- NPY_BIG_ENDIAN;小端序架构也类似。- 定义在 - numpy/npy_endian.h中。
- 
int PyArray_GetEndianness()#
- 返回当前平台的字节序。返回值是 - NPY_CPU_BIG、- NPY_CPU_LITTLE或- NPY_CPU_UNKNOWN_ENDIAN之一。- 
NPY_CPU_BIG#
 - 
NPY_CPU_LITTLE#
 - 
NPY_CPU_UNKNOWN_ENDIAN#
 
- 
NPY_CPU_BIG#
编译器指令#
- 
NPY_LIKELY#
- 
NPY_UNLIKELY#
- 
NPY_UNUSED#