1 /** Header to define integer type macros for AFNI **/ 2 /** RW Cox - November 2021 **/ 3 4 #ifndef _AFNI_INTEGER_HEADER_ 5 #define _AFNI_INTEGER_HEADER_ 6 7 #ifdef __cplusplus 8 # include <cstdint> 9 #else 10 # include <stdint.h> 11 #endif 12 13 #undef Aintsize /* will be 32 or 64 */ 14 15 #define Aint32 int32_t 16 #define UAint32 uint32_t 17 #define Aint64 int64_t 18 #define UAint64 uint64_t 19 20 #if INTPTR_MAX == INT64_MAX 21 # define Aintsize 64 22 #elif INTPTR_MAX == INT32_MAX 23 # define Aintsize 32 24 #else 25 # define Aintsize 32 /* probably wrong, but this is Weird Stuff */ 26 #endif 27 28 /* define Aint and UAint depending on the system */ 29 30 #if Aintsize == 64 31 # define Aint int64_t 32 # define UAint uint64_t 33 #elif Aintsize == 32 34 # define Aint int32_t 35 # define UAint uint32_t 36 #else /* Weird Stuff */ 37 # define Aint int 38 # define UAint unsigned int 39 #endif 40 41 #endif /* _AFNI_INTEGER_HEADER */ 42