You can get the list of predefined macros for a source file in C by using the clang or
gcc flags -E -dM
λ walter [learning-c/effective-c/ch8] → clang -E -dM readchar.c
#define BIG_ENDIAN __BIG_ENDIAN
#define BUFSIZ 8192
#define BYTE_ORDER __BYTE_ORDER
#define EOF (-1)
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#define FD_CLR(fd,fdsetp) __FD_CLR (fd, fdsetp)
#define FD_ISSET(fd,fdsetp) __FD_ISSET (fd, fdsetp)
#define FD_SET(fd,fdsetp) __FD_SET (fd, fdsetp)
#define FD_SETSIZE __FD_SETSIZE
#define FD_ZERO(fdsetp) __FD_ZERO (fdsetp)
#define FILENAME_MAX 4096
#define FOPEN_MAX 16
#define LITTLE_ENDIAN __LITTLE_ENDIAN
#define L_ctermid 9
#define L_tmpnam 20
#define MB_CUR_MAX (__ctype_get_mb_cur_max ())
#define NFDBITS __NFDBITS
#define NULL ((void*)0)
#define PDP_ENDIAN __PDP_ENDIAN
#define P_tmpdir "/tmp"
#define RAND_MAX 2147483647
#define SEEK_CUR 1
#define SEEK_END 2
#define SEEK_SET 0
#define TMP_MAX 238328
#define WCONTINUED 8
#define WEXITED 4
#define WEXITSTATUS(status) __WEXITSTATUS (status)
#define WIFCONTINUED(status) __WIFCONTINUED (status)
#define WIFEXITED(status) __WIFEXITED (status)
#define WIFSIGNALED(status) __WIFSIGNALED (status)
#define WIFSTOPPED(status) __WIFSTOPPED (status)
#define WNOHANG 1
#define WNOWAIT 0x01000000
#define WSTOPPED 2
#define WSTOPSIG(status) __WSTOPSIG (status)
#define WTERMSIG(status) __WTERMSIG (status)
#define WUNTRACED 2
#define _ALLOCA_H 1
#define _ATFILE_SOURCE 1
#define _BITS_BYTESWAP_H 1
#define _BITS_FLOATN_COMMON_H
#define _BITS_FLOATN_H
#define _BITS_PTHREADTYPES_ARCH_H 1
#define _BITS_PTHREADTYPES_COMMON_H 1
#define _BITS_STDINT_INTN_H 1
#define _BITS_STDIO_LIM_H 1
#define _BITS_TYPESIZES_H 1
#define _BITS_TYPES_H 1
#define _BITS_TYPES_LOCALE_T_H 1
#define _BITS_TYPES___LOCALE_T_H 1
#define _BITS_UINTN_IDENTITY_H 1
#define _DEFAULT_SOURCE 1
#define _ENDIAN_H 1
#define _FEATURES_H 1
#define _IOFBF 0
#define _IOLBF 1
#define _IONBF 2
#define _IO_EOF_SEEN 0x0010
#define _IO_ERR_SEEN 0x0020
#define _IO_USER_LOCK 0x8000
#define _LP64 1
#define _POSIX_C_SOURCE 200809L
#define _POSIX_SOURCE 1
#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
#define _SIZE_T
#define _STDC_PREDEF_H 1
#define _STDIO_H 1
#define _STDLIB_H 1
#define _STRINGS_H 1
#define _STRING_H 1
#define _STRUCT_TIMESPEC 1
#define _SYS_CDEFS_H 1
#define _SYS_SELECT_H 1
#define _SYS_TYPES_H 1
#define _THREAD_SHARED_TYPES_H 1
#define _VA_LIST
#define _VA_LIST_DEFINED
#define _WCHAR_T
#define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
#define __ASMNAME2(prefix,cname) __STRING (prefix) cname
#define __ATOMIC_ACQUIRE 2
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_CONSUME 1
#define __ATOMIC_RELAXED 0
#define __ATOMIC_RELEASE 3
#define __ATOMIC_SEQ_CST 5
#define __BEGIN_DECLS
#define __BIGGEST_ALIGNMENT__ 16
#define __BIG_ENDIAN 4321
#define __BIT_TYPES_DEFINED__ 1
#define __BLKCNT64_T_TYPE __SQUAD_TYPE
#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE
#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
#define __BYTE_ORDER __LITTLE_ENDIAN
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __CFLOAT32 _Complex float
#define __CFLOAT32X _Complex double
#define __CFLOAT64 _Complex double
#define __CFLOAT64X _Complex long double
#define __CHAR16_TYPE__ unsigned short
#define __CHAR32_TYPE__ unsigned int
#define __CHAR_BIT__ 8
#define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
#define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
#define __CLANG_ATOMIC_INT_LOCK_FREE 2
#define __CLANG_ATOMIC_LLONG_LOCK_FREE 2
#define __CLANG_ATOMIC_LONG_LOCK_FREE 2
#define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
#define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
#define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __CLOCKID_T_TYPE __S32_TYPE
#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE
#define __COMPAR_FN_T
#define __CONCAT(x,y) x ## y
#define __CONSTANT_CFSTRINGS__ 1
#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE
#define __DADDR_T_TYPE __S32_TYPE
#define __DBL_DECIMAL_DIG__ 17
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __DBL_DIG__ 15
#define __DBL_EPSILON__ 2.2204460492503131e-16
#define __DBL_HAS_DENORM__ 1
#define __DBL_HAS_INFINITY__ 1
#define __DBL_HAS_QUIET_NAN__ 1
#define __DBL_MANT_DIG__ 53
#define __DBL_MAX_10_EXP__ 308
#define __DBL_MAX_EXP__ 1024
#define __DBL_MAX__ 1.7976931348623157e+308
#define __DBL_MIN_10_EXP__ (-307)
#define __DBL_MIN_EXP__ (-1021)
#define __DBL_MIN__ 2.2250738585072014e-308
#define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
#define __DEV_T_TYPE __UQUAD_TYPE
#define __ELF__ 1
#define __END_DECLS
#define __ENUM_IDTYPE_T 1
#define __FDS_BITS(set) ((set)->__fds_bits)
#define __FD_CLR(d,set) ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d)))
#define __FD_ELT(d) ((d) / __NFDBITS)
#define __FD_ISSET(d,set) ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
#define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS)))
#define __FD_SET(d,set) ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d)))
#define __FD_SETSIZE 1024
#define __FD_ZERO(fdsp) do { int __d0, __d1; __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS : "=c" (__d0), "=D" (__d1) : "a" (0), "0" (sizeof (fd_set) / sizeof (__fd_mask)), "1" (&__FDS_BITS (fdsp)[0]) : "memory"); } while (0)
#define __FD_ZERO_STOS "stosq"
#define __FILE_defined 1
#define __FINITE_MATH_ONLY__ 0
#define __FLOAT128__ 1
#define __FLOAT_WORD_ORDER __BYTE_ORDER
#define __FLT16_DECIMAL_DIG__ 5
#define __FLT16_DENORM_MIN__ 5.9604644775390625e-8F16
#define __FLT16_DIG__ 3
#define __FLT16_EPSILON__ 9.765625e-4F16
#define __FLT16_HAS_DENORM__ 1
#define __FLT16_HAS_INFINITY__ 1
#define __FLT16_HAS_QUIET_NAN__ 1
#define __FLT16_MANT_DIG__ 11
#define __FLT16_MAX_10_EXP__ 4
#define __FLT16_MAX_EXP__ 15
#define __FLT16_MAX__ 6.5504e+4F16
#define __FLT16_MIN_10_EXP__ (-13)
#define __FLT16_MIN_EXP__ (-14)
#define __FLT16_MIN__ 6.103515625e-5F16
#define __FLT_DECIMAL_DIG__ 9
#define __FLT_DENORM_MIN__ 1.40129846e-45F
#define __FLT_DIG__ 6
#define __FLT_EPSILON__ 1.19209290e-7F
#define __FLT_EVAL_METHOD__ 0
#define __FLT_HAS_DENORM__ 1
#define __FLT_HAS_INFINITY__ 1
#define __FLT_HAS_QUIET_NAN__ 1
#define __FLT_MANT_DIG__ 24
#define __FLT_MAX_10_EXP__ 38
#define __FLT_MAX_EXP__ 128
#define __FLT_MAX__ 3.40282347e+38F
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT_MIN_EXP__ (-125)
#define __FLT_MIN__ 1.17549435e-38F
#define __FLT_RADIX__ 2
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
#define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE
#define __FXSR__ 1
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
#define __GCC_ATOMIC_INT_LOCK_FREE 2
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
#define __GID_T_TYPE __U32_TYPE
#define __GLIBC_MINOR__ 28
#define __GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
#define __GLIBC_USE(F) __GLIBC_USE_ ## F
#define __GLIBC_USE_DEPRECATED_GETS 0
#define __GLIBC_USE_IEC_60559_BFP_EXT 0
#define __GLIBC_USE_IEC_60559_FUNCS_EXT 0
#define __GLIBC_USE_IEC_60559_TYPES_EXT 0
#define __GLIBC_USE_LIB_EXT2 0
#define __GLIBC__ 2
#define __GNUC_MINOR__ 2
#define __GNUC_PATCHLEVEL__ 1
#define __GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#define __GNUC_STDC_INLINE__ 1
#define __GNUC_VA_LIST 1
#define __GNUC__ 4
#define __GNU_LIBRARY__ 6
#define __GXX_ABI_VERSION 1002
#define __HAVE_DISTINCT_FLOAT128 0
#define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X
#define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16
#define __HAVE_DISTINCT_FLOAT32 0
#define __HAVE_DISTINCT_FLOAT32X 0
#define __HAVE_DISTINCT_FLOAT64 0
#define __HAVE_DISTINCT_FLOAT64X 0
#define __HAVE_FLOAT128 0
#define __HAVE_FLOAT128X 0
#define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113)
#define __HAVE_FLOAT16 0
#define __HAVE_FLOAT32 1
#define __HAVE_FLOAT32X 1
#define __HAVE_FLOAT64 1
#define __HAVE_FLOAT64X 1
#define __HAVE_FLOAT64X_LONG_DOUBLE 1
#define __HAVE_FLOATN_NOT_TYPEDEF 0
#define __HAVE_GENERIC_SELECTION 1
#define __ID_T_TYPE __U32_TYPE
#define __INO64_T_TYPE __UQUAD_TYPE
#define __INO_T_MATCHES_INO64_T 1
#define __INO_T_TYPE __SYSCALL_ULONG_TYPE
#define __INT16_C_SUFFIX__
#define __INT16_FMTd__ "hd"
#define __INT16_FMTi__ "hi"
#define __INT16_MAX__ 32767
#define __INT16_TYPE__ short
#define __INT32_C_SUFFIX__
#define __INT32_FMTd__ "d"
#define __INT32_FMTi__ "i"
#define __INT32_MAX__ 2147483647
#define __INT32_TYPE__ int
#define __INT64_C_SUFFIX__ L
#define __INT64_FMTd__ "ld"
#define __INT64_FMTi__ "li"
#define __INT64_MAX__ 9223372036854775807L
#define __INT64_TYPE__ long int
#define __INT8_C_SUFFIX__
#define __INT8_FMTd__ "hhd"
#define __INT8_FMTi__ "hhi"
#define __INT8_MAX__ 127
#define __INT8_TYPE__ signed char
#define __INTMAX_C_SUFFIX__ L
#define __INTMAX_FMTd__ "ld"
#define __INTMAX_FMTi__ "li"
#define __INTMAX_MAX__ 9223372036854775807L
#define __INTMAX_TYPE__ long int
#define __INTMAX_WIDTH__ 64
#define __INTPTR_FMTd__ "ld"
#define __INTPTR_FMTi__ "li"
#define __INTPTR_MAX__ 9223372036854775807L
#define __INTPTR_TYPE__ long int
#define __INTPTR_WIDTH__ 64
#define __INT_FAST16_FMTd__ "hd"
#define __INT_FAST16_FMTi__ "hi"
#define __INT_FAST16_MAX__ 32767
#define __INT_FAST16_TYPE__ short
#define __INT_FAST32_FMTd__ "d"
#define __INT_FAST32_FMTi__ "i"
#define __INT_FAST32_MAX__ 2147483647
#define __INT_FAST32_TYPE__ int
#define __INT_FAST64_FMTd__ "ld"
#define __INT_FAST64_FMTi__ "li"
#define __INT_FAST64_MAX__ 9223372036854775807L
#define __INT_FAST64_TYPE__ long int
#define __INT_FAST8_FMTd__ "hhd"
#define __INT_FAST8_FMTi__ "hhi"
#define __INT_FAST8_MAX__ 127
#define __INT_FAST8_TYPE__ signed char
#define __INT_LEAST16_FMTd__ "hd"
#define __INT_LEAST16_FMTi__ "hi"
#define __INT_LEAST16_MAX__ 32767
#define __INT_LEAST16_TYPE__ short
#define __INT_LEAST32_FMTd__ "d"
#define __INT_LEAST32_FMTi__ "i"
#define __INT_LEAST32_MAX__ 2147483647
#define __INT_LEAST32_TYPE__ int
#define __INT_LEAST64_FMTd__ "ld"
#define __INT_LEAST64_FMTi__ "li"
#define __INT_LEAST64_MAX__ 9223372036854775807L
#define __INT_LEAST64_TYPE__ long int
#define __INT_LEAST8_FMTd__ "hhd"
#define __INT_LEAST8_FMTi__ "hhi"
#define __INT_LEAST8_MAX__ 127
#define __INT_LEAST8_TYPE__ signed char
#define __INT_MAX__ 2147483647
#define __KERNEL_STRICT_NAMES
#define __KEY_T_TYPE __S32_TYPE
#define __LDBL_DECIMAL_DIG__ 21
#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
#define __LDBL_DIG__ 18
#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
#define __LDBL_HAS_DENORM__ 1
#define __LDBL_HAS_INFINITY__ 1
#define __LDBL_HAS_QUIET_NAN__ 1
#define __LDBL_MANT_DIG__ 64
#define __LDBL_MAX_10_EXP__ 4932
#define __LDBL_MAX_EXP__ 16384
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
#define __LDBL_MIN_10_EXP__ (-4931)
#define __LDBL_MIN_EXP__ (-16381)
#define __LDBL_MIN__ 3.36210314311209350626e-4932L
#define __LDBL_REDIR(name,proto) name proto
#define __LDBL_REDIR1(name,proto,alias) name proto
#define __LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW
#define __LDBL_REDIR_DECL(name)
#define __LDBL_REDIR_NTH(name,proto) name proto __THROW
#define __LEAF
#define __LEAF_ATTR
#define __LITTLE_ENDIAN 1234
#define __LITTLE_ENDIAN__ 1
#define __LOCK_ALIGNMENT
#define __LONG_LONG_MAX__ 9223372036854775807LL
#define __LONG_LONG_PAIR(HI,LO) LO, HI
#define __LONG_MAX__ 9223372036854775807L
#define __LP64__ 1
#define __MMX__ 1
#define __MODE_T_TYPE __U32_TYPE
#define __NFDBITS (8 * (int) sizeof (__fd_mask))
#define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE
#define __NO_INLINE__ 1
#define __NO_MATH_INLINES 1
#define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
#define __NTHNL(fct) __attribute__ ((__nothrow__)) fct
#define __OBJC_BOOL_IS_BOOL 0
#define __OFF64_T_TYPE __SQUAD_TYPE
#define __OFF_T_MATCHES_OFF64_T 1
#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE
#define __ONCE_ALIGNMENT
#define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3
#define __OPENCL_MEMORY_SCOPE_DEVICE 2
#define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4
#define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1
#define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412
#define __P(args) args
#define __PDP_ENDIAN 3412
#define __PID_T_TYPE __S32_TYPE
#define __PMT(args) args
#define __POINTER_WIDTH__ 64
#define __PRAGMA_REDEFINE_EXTNAME 1
#define __PTHREAD_COMPAT_PADDING_END
#define __PTHREAD_COMPAT_PADDING_MID
#define __PTHREAD_MUTEX_HAVE_PREV 1
#define __PTHREAD_MUTEX_LOCK_ELISION 1
#define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
#define __PTHREAD_MUTEX_USE_UNION 0
#define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
#define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
#define __PTHREAD_SPINS 0, 0
#define __PTHREAD_SPINS_DATA short __spins; short __elision
#define __PTRDIFF_FMTd__ "ld"
#define __PTRDIFF_FMTi__ "li"
#define __PTRDIFF_MAX__ 9223372036854775807L
#define __PTRDIFF_TYPE__ long int
#define __PTRDIFF_WIDTH__ 64
#define __REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))
#define __REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)
#define __REDIRECT_NTH(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROW
#define __REDIRECT_NTHNL(name,proto,alias) name proto __asm__ (__ASMNAME (#alias)) __THROWNL
#define __REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)
#define __REGISTER_PREFIX__
#define __RLIM64_T_TYPE __UQUAD_TYPE
#define __RLIM_T_MATCHES_RLIM64_T 1
#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE
#define __S16_TYPE short int
#define __S32_TYPE int
#define __S64_TYPE long int
#define __SCHAR_MAX__ 127
#define __SHRT_MAX__ 32767
#define __SIG_ATOMIC_MAX__ 2147483647
#define __SIG_ATOMIC_WIDTH__ 32
#define __SIZEOF_DOUBLE__ 8
#define __SIZEOF_FLOAT128__ 16
#define __SIZEOF_FLOAT__ 4
#define __SIZEOF_INT128__ 16
#define __SIZEOF_INT__ 4
#define __SIZEOF_LONG_DOUBLE__ 16
#define __SIZEOF_LONG_LONG__ 8
#define __SIZEOF_LONG__ 8
#define __SIZEOF_POINTER__ 8
#define __SIZEOF_PTHREAD_ATTR_T 56
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
#define __SIZEOF_PTHREAD_BARRIER_T 32
#define __SIZEOF_PTHREAD_CONDATTR_T 4
#define __SIZEOF_PTHREAD_COND_T 48
#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
#define __SIZEOF_PTHREAD_MUTEX_T 40
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
#define __SIZEOF_PTHREAD_RWLOCK_T 56
#define __SIZEOF_PTRDIFF_T__ 8
#define __SIZEOF_SHORT__ 2
#define __SIZEOF_SIZE_T__ 8
#define __SIZEOF_WCHAR_T__ 4
#define __SIZEOF_WINT_T__ 4
#define __SIZE_FMTX__ "lX"
#define __SIZE_FMTo__ "lo"
#define __SIZE_FMTu__ "lu"
#define __SIZE_FMTx__ "lx"
#define __SIZE_MAX__ 18446744073709551615UL
#define __SIZE_TYPE__ long unsigned int
#define __SIZE_WIDTH__ 64
#define __SLONG32_TYPE int
#define __SLONGWORD_TYPE long int
#define __SQUAD_TYPE long int
#define __SSE2_MATH__ 1
#define __SSE2__ 1
#define __SSE_MATH__ 1
#define __SSE__ 1
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __STDARG_H
#define __STDC_HOSTED__ 1
#define __STDC_IEC_559_COMPLEX__ 1
#define __STDC_IEC_559__ 1
#define __STDC_ISO_10646__ 201706L
#define __STDC_UTF_16__ 1
#define __STDC_UTF_32__ 1
#define __STDC_VERSION__ 201112L
#define __STDC__ 1
#define __STRING(x) #x
#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE
#define __SWORD_TYPE long int
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __SYSCALL_WORDSIZE 64
#define __THROW __attribute__ ((__nothrow__ __LEAF))
#define __THROWNL __attribute__ ((__nothrow__))
#define __TIMER_T_TYPE void *
#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE
#define __U16_TYPE unsigned short int
#define __U32_TYPE unsigned int
#define __U64_TYPE unsigned long int
#define __UID_T_TYPE __U32_TYPE
#define __UINT16_C_SUFFIX__
#define __UINT16_FMTX__ "hX"
#define __UINT16_FMTo__ "ho"
#define __UINT16_FMTu__ "hu"
#define __UINT16_FMTx__ "hx"
#define __UINT16_MAX__ 65535
#define __UINT16_TYPE__ unsigned short
#define __UINT32_C_SUFFIX__ U
#define __UINT32_FMTX__ "X"
#define __UINT32_FMTo__ "o"
#define __UINT32_FMTu__ "u"
#define __UINT32_FMTx__ "x"
#define __UINT32_MAX__ 4294967295U
#define __UINT32_TYPE__ unsigned int
#define __UINT64_C_SUFFIX__ UL
#define __UINT64_FMTX__ "lX"
#define __UINT64_FMTo__ "lo"
#define __UINT64_FMTu__ "lu"
#define __UINT64_FMTx__ "lx"
#define __UINT64_MAX__ 18446744073709551615UL
#define __UINT64_TYPE__ long unsigned int
#define __UINT8_C_SUFFIX__
#define __UINT8_FMTX__ "hhX"
#define __UINT8_FMTo__ "hho"
#define __UINT8_FMTu__ "hhu"
#define __UINT8_FMTx__ "hhx"
#define __UINT8_MAX__ 255
#define __UINT8_TYPE__ unsigned char
#define __UINTMAX_C_SUFFIX__ UL
#define __UINTMAX_FMTX__ "lX"
#define __UINTMAX_FMTo__ "lo"
#define __UINTMAX_FMTu__ "lu"
#define __UINTMAX_FMTx__ "lx"
#define __UINTMAX_MAX__ 18446744073709551615UL
#define __UINTMAX_TYPE__ long unsigned int
#define __UINTMAX_WIDTH__ 64
#define __UINTPTR_FMTX__ "lX"
#define __UINTPTR_FMTo__ "lo"
#define __UINTPTR_FMTu__ "lu"
#define __UINTPTR_FMTx__ "lx"
#define __UINTPTR_MAX__ 18446744073709551615UL
#define __UINTPTR_TYPE__ long unsigned int
#define __UINTPTR_WIDTH__ 64
#define __UINT_FAST16_FMTX__ "hX"
#define __UINT_FAST16_FMTo__ "ho"
#define __UINT_FAST16_FMTu__ "hu"
#define __UINT_FAST16_FMTx__ "hx"
#define __UINT_FAST16_MAX__ 65535
#define __UINT_FAST16_TYPE__ unsigned short
#define __UINT_FAST32_FMTX__ "X"
#define __UINT_FAST32_FMTo__ "o"
#define __UINT_FAST32_FMTu__ "u"
#define __UINT_FAST32_FMTx__ "x"
#define __UINT_FAST32_MAX__ 4294967295U
#define __UINT_FAST32_TYPE__ unsigned int
#define __UINT_FAST64_FMTX__ "lX"
#define __UINT_FAST64_FMTo__ "lo"
#define __UINT_FAST64_FMTu__ "lu"
#define __UINT_FAST64_FMTx__ "lx"
#define __UINT_FAST64_MAX__ 18446744073709551615UL
#define __UINT_FAST64_TYPE__ long unsigned int
#define __UINT_FAST8_FMTX__ "hhX"
#define __UINT_FAST8_FMTo__ "hho"
#define __UINT_FAST8_FMTu__ "hhu"
#define __UINT_FAST8_FMTx__ "hhx"
#define __UINT_FAST8_MAX__ 255
#define __UINT_FAST8_TYPE__ unsigned char
#define __UINT_LEAST16_FMTX__ "hX"
#define __UINT_LEAST16_FMTo__ "ho"
#define __UINT_LEAST16_FMTu__ "hu"
#define __UINT_LEAST16_FMTx__ "hx"
#define __UINT_LEAST16_MAX__ 65535
#define __UINT_LEAST16_TYPE__ unsigned short
#define __UINT_LEAST32_FMTX__ "X"
#define __UINT_LEAST32_FMTo__ "o"
#define __UINT_LEAST32_FMTu__ "u"
#define __UINT_LEAST32_FMTx__ "x"
#define __UINT_LEAST32_MAX__ 4294967295U
#define __UINT_LEAST32_TYPE__ unsigned int
#define __UINT_LEAST64_FMTX__ "lX"
#define __UINT_LEAST64_FMTo__ "lo"
#define __UINT_LEAST64_FMTu__ "lu"
#define __UINT_LEAST64_FMTx__ "lx"
#define __UINT_LEAST64_MAX__ 18446744073709551615UL
#define __UINT_LEAST64_TYPE__ long unsigned int
#define __UINT_LEAST8_FMTX__ "hhX"
#define __UINT_LEAST8_FMTo__ "hho"
#define __UINT_LEAST8_FMTu__ "hhu"
#define __UINT_LEAST8_FMTx__ "hhx"
#define __UINT_LEAST8_MAX__ 255
#define __UINT_LEAST8_TYPE__ unsigned char
#define __ULONG32_TYPE unsigned int
#define __ULONGWORD_TYPE unsigned long int
#define __UQUAD_TYPE unsigned long int
#define __USECONDS_T_TYPE __U32_TYPE
#define __USER_LABEL_PREFIX__
#define __USE_ATFILE 1
#define __USE_FORTIFY_LEVEL 0
#define __USE_ISOC11 1
#define __USE_ISOC95 1
#define __USE_ISOC99 1
#define __USE_MISC 1
#define __USE_POSIX 1
#define __USE_POSIX199309 1
#define __USE_POSIX199506 1
#define __USE_POSIX2 1
#define __USE_POSIX_IMPLICITLY 1
#define __USE_XOPEN2K 1
#define __USE_XOPEN2K8 1
#define __UWORD_TYPE unsigned long int
#define __VERSION__ "4.2.1 Compatible Clang 7.0.1 (tags/RELEASE_701/final)"
#define __WALL 0x40000000
#define __WCHAR_MAX__ 2147483647
#define __WCHAR_TYPE__ int
#define __WCHAR_WIDTH__ 32
#define __WCLONE 0x80000000
#define __WCOREDUMP(status) ((status) & __WCOREFLAG)
#define __WCOREFLAG 0x80
#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
#define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
#define __WIFEXITED(status) (__WTERMSIG(status) == 0)
#define __WIFSIGNALED(status) (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
#define __WINT_MAX__ 4294967295U
#define __WINT_TYPE__ unsigned int
#define __WINT_UNSIGNED__ 1
#define __WINT_WIDTH__ 32
#define __WNOTHREAD 0x20000000
#define __WORDSIZE 64
#define __WORDSIZE_TIME64_COMPAT32 1
#define __WSTOPSIG(status) __WEXITSTATUS(status)
#define __WTERMSIG(status) ((status) & 0x7f)
#define __W_CONTINUED 0xffff
#define __W_EXITCODE(ret,sig) ((ret) << 8 | (sig))
#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
#define ____FILE_defined 1
#define _____fpos64_t_defined 1
#define _____fpos_t_defined 1
#define ____mbstate_t_defined 1
#define ____sigset_t_defined
#define __always_inline __inline __attribute__ ((__always_inline__))
#define __amd64 1
#define __amd64__ 1
#define __attribute_alloc_size__(params)
#define __attribute_artificial__
#define __attribute_const__ __attribute__ ((__const__))
#define __attribute_deprecated__ __attribute__ ((__deprecated__))
#define __attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg)))
#define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
#define __attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))
#define __attribute_malloc__ __attribute__ ((__malloc__))
#define __attribute_noinline__ __attribute__ ((__noinline__))
#define __attribute_nonstring__
#define __attribute_pure__ __attribute__ ((__pure__))
#define __attribute_used__ __attribute__ ((__used__))
#define __attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))
#define __blkcnt_t_defined
#define __blksize_t_defined
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
#define __bswap_constant_16(x) ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
#define __bswap_constant_32(x) ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
#define __bswap_constant_64(x) ((((x) & 0xff00000000000000ull) >> 56) | (((x) & 0x00ff000000000000ull) >> 40) | (((x) & 0x0000ff0000000000ull) >> 24) | (((x) & 0x000000ff00000000ull) >> 8) | (((x) & 0x00000000ff000000ull) << 8) | (((x) & 0x0000000000ff0000ull) << 24) | (((x) & 0x000000000000ff00ull) << 40) | (((x) & 0x00000000000000ffull) << 56))
#define __builtin_huge_valf32() (__builtin_huge_valf ())
#define __builtin_huge_valf32x() (__builtin_huge_val ())
#define __builtin_huge_valf64() (__builtin_huge_val ())
#define __builtin_huge_valf64x() (__builtin_huge_vall ())
#define __builtin_inff32() (__builtin_inff ())
#define __builtin_inff32x() (__builtin_inf ())
#define __builtin_inff64() (__builtin_inf ())
#define __builtin_inff64x() (__builtin_infl ())
#define __builtin_nanf32(x) (__builtin_nanf (x))
#define __builtin_nanf32x(x) (__builtin_nan (x))
#define __builtin_nanf64(x) (__builtin_nan (x))
#define __builtin_nanf64x(x) (__builtin_nanl (x))
#define __builtin_nansf32(x) (__builtin_nansf (x))
#define __builtin_nansf32x(x) (__builtin_nans (x))
#define __builtin_nansf64(x) (__builtin_nans (x))
#define __builtin_nansf64x(x) (__builtin_nansl (x))
#define __clang__ 1
#define __clang_major__ 7
#define __clang_minor__ 0
#define __clang_patchlevel__ 1
#define __clang_version__ "7.0.1 (tags/RELEASE_701/final)"
#define __clock_t_defined 1
#define __clockid_t_defined 1
#define __daddr_t_defined
#define __dev_t_defined
#define __errordecl(name,msg) extern void name (void)
#define __extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__))
#define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
#define __f32(x) x##f
#define __f32x(x) x
#define __f64(x) x
#define __f64x(x) x##l
#define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0)
#define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0)
#define __flexarr []
#define __fortify_function __extern_always_inline __attribute_artificial__
#define __fsblkcnt_t_defined
#define __fsfilcnt_t_defined
#define __getc_unlocked_body(_fp) (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++)
#define __gid_t_defined
#define __glibc_c99_flexarr_available 1
#define __glibc_clang_has_extension(ext) __has_extension (ext)
#define __glibc_clang_prereq(maj,min) ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
#define __glibc_has_attribute(attr) __has_attribute (attr)
#define __glibc_likely(cond) __builtin_expect ((cond), 1)
#define __glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message)
#define __glibc_macro_warning1(message) _Pragma (#message)
#define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
#define __gnu_linux__ 1
#define __have_pthread_attr_t 1
#define __id_t_defined
#define __ino_t_defined
#define __k8 1
#define __k8__ 1
#define __key_t_defined
#define __ldiv_t_defined 1
#define __linux 1
#define __linux__ 1
#define __lldiv_t_defined 1
#define __llvm__ 1
#define __mode_t_defined
#define __need___va_list
#define __nlink_t_defined
#define __nonnull(params) __attribute__ ((__nonnull__ params))
#define __off_t_defined
#define __pid_t_defined
#define __ptr_t void *
#define __putc_unlocked_body(_ch,_fp) (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch)))
#define __restrict_arr __restrict
#define __sigset_t_defined 1
#define __ssize_t_defined
#define __struct_FILE_defined 1
#define __stub___compat_bdflush
#define __stub_chflags
#define __stub_fattach
#define __stub_fchflags
#define __stub_fdetach
#define __stub_getmsg
#define __stub_gtty
#define __stub_lchmod
#define __stub_putmsg
#define __stub_revoke
#define __stub_setlogin
#define __stub_sigreturn
#define __stub_sstk
#define __stub_stty
#define __suseconds_t_defined
#define __time_t_defined 1
#define __timer_t_defined 1
#define __timeval_defined 1
#define __tune_k8__ 1
#define __u_char_defined
#define __u_intN_t(N,MODE) typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE)))
#define __uid_t_defined
#define __unix 1
#define __unix__ 1
#define __va_copy(d,s) __builtin_va_copy(d,s)
#define __warnattr(msg)
#define __warndecl(name,msg) extern void name (void)
#define __wur
#define __x86_64 1
#define __x86_64__ 1
#define alloca(size) __builtin_alloca (size)
#define be16toh(x) __bswap_16 (x)
#define be32toh(x) __bswap_32 (x)
#define be64toh(x) __bswap_64 (x)
#define htobe16(x) __bswap_16 (x)
#define htobe32(x) __bswap_32 (x)
#define htobe64(x) __bswap_64 (x)
#define htole16(x) __uint16_identity (x)
#define htole32(x) __uint32_identity (x)
#define htole64(x) __uint64_identity (x)
#define le16toh(x) __uint16_identity (x)
#define le32toh(x) __uint32_identity (x)
#define le64toh(x) __uint64_identity (x)
#define linux 1
#define stderr stderr
#define stdin stdin
#define stdout stdout
#define unix 1
#define va_arg(ap,type) __builtin_va_arg(ap, type)
#define va_copy(dest,src) __builtin_va_copy(dest, src)
#define va_end(ap) __builtin_va_end(ap)
#define va_start(ap,param) __builtin_va_start(ap, param)