features.h 865 字节
Newer Older
1 2 3
#ifndef _FEATURES_H
#define _FEATURES_H

4
#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
5 6 7
#define _GNU_SOURCE 1
#endif

8 9 10 11
#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
#define _BSD_SOURCE 1
#endif

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
 && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
 && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
#define _BSD_SOURCE 1
#define _XOPEN_SOURCE 700
#endif

#if __STDC_VERSION__ >= 199901L
#define __restrict restrict
#elif !defined(__GNUC__)
#define __restrict
#endif

#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
#define __inline inline
27 28
#elif !defined(__GNUC__)
#define __inline
29 30 31 32 33 34 35 36 37
#endif

#if __STDC_VERSION__ >= 201112L
#elif defined(__GNUC__)
#define _Noreturn __attribute__((__noreturn__))
#else
#define _Noreturn
#endif

38 39
#define __REDIR(x,y) __typeof__(x) x __asm__(#y)

40
#endif