📄 acc_init.h
字号:
/* ACC -- Automatic Compiler Configuration Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer All Rights Reserved. This software is a copyrighted work licensed under the terms of the GNU General Public License. Please consult the file "ACC_LICENSE" for details. Markus F.X.J. Oberhumer <markus@oberhumer.com> http://www.oberhumer.com/ *//***********************************************************************// preprocessor************************************************************************//* workaround for preprocessor bugs in some compilers */#if 0#define ACC_0xffffL 0xfffful#define ACC_0xffffffffL 0xfffffffful#else#define ACC_0xffffL 65535ul#define ACC_0xffffffffL 4294967295ul#endif/* some things we cannot work around */#if (ACC_0xffffL == ACC_0xffffffffL)# error "your preprocessor is broken 1"#endif#if (16ul * 16384ul != 262144ul)# error "your preprocessor is broken 2"#endif#if 0#if (32767 >= 4294967295ul)# error "your preprocessor is broken 3"#endif#if (65535u >= 4294967295ul)# error "your preprocessor is broken 4"#endif#endif/***********************************************************************// try to detect specific compilers************************************************************************/#if (UINT_MAX == ACC_0xffffL)#if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)# if !defined(MSDOS)# define MSDOS 1# endif# if !defined(_MSDOS)# define _MSDOS 1# endif#elif defined(__VERSION) && defined(MB_LEN_MAX)# if (__VERSION == 520) && (MB_LEN_MAX == 1)# if !defined(__AZTEC_C__)# define __AZTEC_C__ __VERSION# endif# if !defined(__DOS__)# define __DOS__ 1# endif# endif#endif#endif/***********************************************************************// fix incorrect and missing stuff************************************************************************//* Microsoft C does not correctly define ptrdiff_t for * the 16-bit huge memory model. */#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)# define ptrdiff_t long# define _PTRDIFF_T_DEFINED#endif/* Fix old compiler versions. */#if (UINT_MAX == ACC_0xffffL)# undef __ACC_RENAME_A# undef __ACC_RENAME_B# if defined(__AZTEC_C__) && defined(__DOS__)# define __ACC_RENAME_A 1# elif defined(_MSC_VER) && defined(MSDOS)# if (_MSC_VER < 600)# define __ACC_RENAME_A 1# elif (_MSC_VER < 700)# define __ACC_RENAME_B 1# endif# elif defined(__TSC__) && defined(__OS2__)# define __ACC_RENAME_A 1# elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)# define __ACC_RENAME_A 1# elif defined(__PACIFIC__) && defined(DOS)# if !defined(__far)# define __far far# endif# if !defined(__near)# define __near near# endif# endif# if defined(__ACC_RENAME_A)# if !defined(__cdecl)# define __cdecl cdecl# endif# if !defined(__far)# define __far far# endif# if !defined(__huge)# define __huge huge# endif# if !defined(__near)# define __near near# endif# if !defined(__pascal)# define __pascal pascal# endif# if !defined(__huge)# define __huge huge# endif# elif defined(__ACC_RENAME_B)# if !defined(__cdecl)# define __cdecl _cdecl# endif# if !defined(__far)# define __far _far# endif# if !defined(__huge)# define __huge _huge# endif# if !defined(__near)# define __near _near# endif# if !defined(__pascal)# define __pascal _pascal# endif# elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)# if !defined(__cdecl)# define __cdecl cdecl# endif# if !defined(__pascal)# define __pascal pascal# endif# endif# undef __ACC_RENAME_A# undef __ACC_RENAME_B#endif#if (UINT_MAX == ACC_0xffffL)#if defined(__AZTEC_C__) && defined(__DOS__)# define ACC_BROKEN_CDECL_ALT_SYNTAX 1#elif defined(_MSC_VER) && defined(MSDOS)# if (_MSC_VER < 600)# define ACC_BROKEN_INTEGRAL_CONSTANTS 1# endif# if (_MSC_VER < 700)# define ACC_BROKEN_INTEGRAL_PROMOTION 1# define ACC_BROKEN_SIZEOF 1# endif#elif defined(__PACIFIC__) && defined(DOS)# define ACC_BROKEN_INTEGRAL_CONSTANTS 1#elif defined(__TURBOC__) && defined(__MSDOS__)# if (__TURBOC__ < 0x0150)# define ACC_BROKEN_CDECL_ALT_SYNTAX 1# define ACC_BROKEN_INTEGRAL_CONSTANTS 1# define ACC_BROKEN_INTEGRAL_PROMOTION 1# endif# if (__TURBOC__ < 0x0200)# define ACC_BROKEN_SIZEOF 1# endif# if (__TURBOC__ < 0x0400) && defined(__cplusplus)# define ACC_BROKEN_CDECL_ALT_SYNTAX 1# endif#elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)# define ACC_BROKEN_CDECL_ALT_SYNTAX 1# define ACC_BROKEN_SIZEOF 1#endif#endif#if defined(__WATCOMC__) && (__WATCOMC__ < 900)# define ACC_BROKEN_INTEGRAL_CONSTANTS 1#endif/***********************************************************************// ANSI C preprocessor macros (cpp)************************************************************************/#define ACC_CPP_STRINGIZE(x) #x#define ACC_CPP_MACRO_EXPAND(x) ACC_CPP_STRINGIZE(x)/* concatenate */#define ACC_CPP_CONCAT2(a,b) a ## b#define ACC_CPP_CONCAT3(a,b,c) a ## b ## c#define ACC_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d#define ACC_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e/* expand and concatenate (by using one level of indirection) */#define ACC_CPP_ECONCAT2(a,b) ACC_CPP_CONCAT2(a,b)#define ACC_CPP_ECONCAT3(a,b,c) ACC_CPP_CONCAT3(a,b,c)#define ACC_CPP_ECONCAT4(a,b,c,d) ACC_CPP_CONCAT4(a,b,c,d)#define ACC_CPP_ECONCAT5(a,b,c,d,e) ACC_CPP_CONCAT5(a,b,c,d,e)/***********************************************************************// stdc macros************************************************************************/#if defined(__cplusplus)# undef __STDC_CONSTANT_MACROS# undef __STDC_LIMIT_MACROS# define __STDC_CONSTANT_MACROS 1# define __STDC_LIMIT_MACROS 1#endif/***********************************************************************// misc macros************************************************************************/#if defined(__cplusplus)# define ACC_EXTERN_C extern "C"#else# define ACC_EXTERN_C extern#endif/*vi:ts=4:et*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -