Go to the documentation of this file.
32 #error Nested inclusion of begin_code.h
36 #ifndef SDL_DEPRECATED
38 # define SDL_DEPRECATED __attribute__((deprecated))
40 # define SDL_DEPRECATED
46 # define SDL_UNUSED __attribute__((unused))
54 # if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__)
56 # define DECLSPEC __declspec(dllexport)
60 # elif defined(__OS2__)
62 # define DECLSPEC __declspec(dllexport)
67 # if defined(__GNUC__) && __GNUC__ >= 4
68 # define DECLSPEC __attribute__ ((visibility("default")))
77 #if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__)
78 #define SDLCALL __cdecl
79 #elif defined(__OS2__) || defined(__EMX__)
80 #define SDLCALL _System
81 # if defined (__GNUC__) && !defined(_System)
100 #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
102 #pragma warning(disable: 4103)
105 #pragma clang diagnostic ignored "-Wpragma-pack"
108 #pragma nopackwarning
119 #if defined(__GNUC__)
120 #define SDL_INLINE __inline__
121 #elif defined(_MSC_VER) || defined(__BORLANDC__) || \
122 defined(__DMC__) || defined(__SC__) || \
123 defined(__WATCOMC__) || defined(__LCC__) || \
124 defined(__DECC) || defined(__CC_ARM)
125 #define SDL_INLINE __inline
127 #define __inline__ __inline
130 #define SDL_INLINE inline
132 #define __inline__ inline
137 #ifndef SDL_FORCE_INLINE
138 #if defined(_MSC_VER)
139 #define SDL_FORCE_INLINE __forceinline
140 #elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
141 #define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
143 #define SDL_FORCE_INLINE static SDL_INLINE
148 #if defined(__GNUC__)
149 #define SDL_NORETURN __attribute__((noreturn))
150 #elif defined(_MSC_VER)
151 #define SDL_NORETURN __declspec(noreturn)
158 #if !defined(__MACH__)
163 #define NULL ((void *)0)
168 #ifndef SDL_FALLTHROUGH
169 #if (defined(__cplusplus) && __cplusplus >= 201703L) || \
170 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L)
171 #define SDL_FALLTHROUGH [[fallthrough]]
173 #if defined(__has_attribute)
174 #define _HAS_FALLTHROUGH __has_attribute(__fallthrough__)
176 #define _HAS_FALLTHROUGH 0
178 #if _HAS_FALLTHROUGH && \
179 ((defined(__GNUC__) && __GNUC__ >= 7) || \
180 (defined(__clang_major__) && __clang_major__ >= 10))
181 #define SDL_FALLTHROUGH __attribute__((__fallthrough__))
183 #define SDL_FALLTHROUGH do {} while (0)
185 #undef _HAS_FALLTHROUGH