1#pragma once 2 3#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) 4#define _GNU_SOURCE 1 5#endif 6 7#if !defined(_BSD_SOURCE) 8#define _BSD_SOURCE 1 9#endif 10 11#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) && \ 12 !defined(_GNU_SOURCE) && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__) 13#define _BSD_SOURCE 1 14#define _XOPEN_SOURCE 700 15#endif 16 17#if __STDC_VERSION__ >= 199901L 18#define __restrict restrict 19#elif !defined(__GNUC__) 20#define __restrict 21#endif 22 23#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) 24#define __inline inline 25#endif 26 27#if __STDC_VERSION__ >= 201112L 28#elif defined(__GNUC__) 29#define _Noreturn __attribute__((__noreturn__)) 30#else 31#define _Noreturn 32#endif 33