⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chicken.h

📁 Scheme跨平台编译器
💻 H
📖 第 1 页 / 共 5 页
字号:
#define ___scheme_pointer   void *#define ___byte_vector      unsigned char *#define ___symbol           char *#define ___safe#define ___declare(x, y)#define ___specialize#define ___abstract#define ___discard#define ___in#define ___out#define ___inout#define ___mutable#define ___length(var)#define ___pointer#define ___u32              C_u32#define ___s32              C_s32#define ___u64              C_u64#define ___s64              C_s64/* Constants: */#define C_STACK_RESERVE                   4096#define C_DEFAULT_MAX_PENDING_FINALIZERS  2048#define C_IMMEDIATE_MARK_BITS     0x00000003#define C_IMMEDIATE_TYPE_BITS     0x0000000f#define C_BOOLEAN_BITS            0x00000006#define C_CHARACTER_BITS          0x0000000a#define C_SPECIAL_BITS            0x0000000e#define C_SCHEME_FALSE            ((C_word)(C_BOOLEAN_BITS | 0x00000000))#define C_SCHEME_TRUE             ((C_word)(C_BOOLEAN_BITS | 0x00000010))#define C_SCHEME_END_OF_LIST      ((C_word)(C_SPECIAL_BITS | 0x00000000))#define C_SCHEME_UNDEFINED        ((C_word)(C_SPECIAL_BITS | 0x00000010))#define C_SCHEME_UNBOUND          ((C_word)(C_SPECIAL_BITS | 0x00000020))#define C_SCHEME_END_OF_FILE      ((C_word)(C_SPECIAL_BITS | 0x00000030))#define C_FIXNUM_BIT              0x00000001#define C_FIXNUM_SHIFT            1#define C_CHAR_BIT_MASK           0x1fffff#ifdef C_SIXTY_FOUR# define C_MOST_POSITIVE_FIXNUM   0x3fffffffffffffffL# define C_WORD_SIZE              64#else# define C_MOST_POSITIVE_FIXNUM   0x3fffffff# define C_WORD_SIZE              32#endif#define C_MOST_NEGATIVE_FIXNUM    (-C_MOST_POSITIVE_FIXNUM - 1)#ifdef C_SIXTY_FOUR# define C_INT_SIGN_BIT           0x8000000000000000L# define C_INT_TOP_BIT            0x4000000000000000L# define C_HEADER_BITS_MASK       0xff00000000000000L# define C_HEADER_TYPE_BITS       0x0f00000000000000L# define C_HEADER_SIZE_MASK       0x00ffffffffffffffL# define C_GC_FORWARDING_BIT      0x8000000000000000L   /* header contains forwarding pointer */# define C_BYTEBLOCK_BIT          0x4000000000000000L   /* block contains bytes instead of slots */# define C_SPECIALBLOCK_BIT       0x2000000000000000L   /* 1st item is a non-value */# define C_8ALIGN_BIT             0x1000000000000000L   /* data is aligned to 8-byte boundary */# define C_SYMBOL_TYPE            (0x0100000000000000L)# define C_STRING_TYPE            (0x0200000000000000L | C_BYTEBLOCK_BIT)# define C_PAIR_TYPE              (0x0300000000000000L)# define C_CLOSURE_TYPE           (0x0400000000000000L | C_SPECIALBLOCK_BIT)# define C_FLONUM_TYPE            (0x0500000000000000L | C_BYTEBLOCK_BIT | C_8ALIGN_BIT)# define C_UNUSED_TYPE            (0x0600000000000000L)# define C_PORT_TYPE              (0x0700000000000000L | C_SPECIALBLOCK_BIT)# define C_STRUCTURE_TYPE         (0x0800000000000000L)# define C_POINTER_TYPE           (0x0900000000000000L | C_SPECIALBLOCK_BIT)# define C_BUCKET_TYPE            (0x0f00000000000000L)# define C_LOCATIVE_TYPE          (0x0a00000000000000L | C_SPECIALBLOCK_BIT)# define C_TAGGED_POINTER_TYPE    (0x0b00000000000000L | C_SPECIALBLOCK_BIT)# define C_SWIG_POINTER_TYPE      (0x0c00000000000000L | C_BYTEBLOCK_BIT)# define C_LAMBDA_INFO_TYPE       (0x0d00000000000000L | C_BYTEBLOCK_BIT)#else# define C_INT_SIGN_BIT           0x80000000# define C_INT_TOP_BIT            0x40000000# define C_HEADER_BITS_MASK       0xff000000# define C_HEADER_TYPE_BITS       0x0f000000# define C_HEADER_SIZE_MASK       0x00ffffff# define C_GC_FORWARDING_BIT      0x80000000# define C_BYTEBLOCK_BIT          0x40000000# define C_SPECIALBLOCK_BIT       0x20000000# define C_8ALIGN_BIT             0x10000000# define C_SYMBOL_TYPE            (0x01000000)# define C_STRING_TYPE            (0x02000000 | C_BYTEBLOCK_BIT)# define C_PAIR_TYPE              (0x03000000)# define C_CLOSURE_TYPE           (0x04000000 | C_SPECIALBLOCK_BIT)# ifdef C_DOUBLE_IS_32_BITS#  define C_FLONUM_TYPE            (0x05000000 | C_BYTEBLOCK_BIT)# else#  define C_FLONUM_TYPE            (0x05000000 | C_BYTEBLOCK_BIT | C_8ALIGN_BIT)# endif# define C_UNUSED_TYPE            (0x06000000)# define C_PORT_TYPE              (0x07000000 | C_SPECIALBLOCK_BIT)# define C_STRUCTURE_TYPE         (0x08000000)# define C_POINTER_TYPE           (0x09000000 | C_SPECIALBLOCK_BIT)# define C_BUCKET_TYPE            (0x0f000000)# define C_LOCATIVE_TYPE          (0x0a000000 | C_SPECIALBLOCK_BIT)# define C_TAGGED_POINTER_TYPE    (0x0b000000 | C_SPECIALBLOCK_BIT)# define C_SWIG_POINTER_TYPE      (0x0c000000 | C_BYTEBLOCK_BIT)# define C_LAMBDA_INFO_TYPE       (0x0d000000 | C_BYTEBLOCK_BIT)#endif#define C_SLOT_LOCATIVE           0#define C_CHAR_LOCATIVE           1#define C_U8_LOCATIVE             2#define C_S8_LOCATIVE             3#define C_U16_LOCATIVE            4#define C_S16_LOCATIVE            5#define C_U32_LOCATIVE            6#define C_S32_LOCATIVE            7#define C_F32_LOCATIVE            8#define C_F64_LOCATIVE            9#define C_VECTOR_TYPE             0x00000000#define C_BYTEVECTOR_TYPE         (C_VECTOR_TYPE | C_BYTEBLOCK_BIT | C_8ALIGN_BIT)#define C_SIZEOF_LIST(n)          ((n) * 3 + 1)#define C_SIZEOF_PAIR             3#define C_SIZEOF_STRING(n)        (C_bytestowords(n) + 2)#define C_SIZEOF_SYMBOL          4#define C_SIZEOF_INTERNED_SYMBOL(n) (C_SIZEOF_SYMBOL + C_SIZEOF_BUCKET + C_SIZEOF_STRING(n))#ifdef C_DOUBLE_IS_32_BITS# define C_SIZEOF_FLONUM           2#else# define C_SIZEOF_FLONUM           4#endif#define C_SIZEOF_POINTER          2#define C_SIZEOF_TAGGED_POINTER   3#define C_SIZEOF_SWIG_POINTER     3#define C_SIZEOF_VECTOR(n)        ((n) + 1)#define C_SIZEOF_BUCKET           3#define C_SIZEOF_LOCATIVE         5#define C_SIZEOF_PORT             16#define C_PAIR_TAG                (C_PAIR_TYPE | (C_SIZEOF_PAIR - 1))#define C_POINTER_TAG             (C_POINTER_TYPE | (C_SIZEOF_POINTER - 1))#define C_LOCATIVE_TAG            (C_LOCATIVE_TYPE | (C_SIZEOF_LOCATIVE - 1))#define C_TAGGED_POINTER_TAG      (C_TAGGED_POINTER_TYPE | (C_SIZEOF_TAGGED_POINTER - 1))#define C_SWIG_POINTER_TAG        (C_SWIG_POINTER_TYPE | (C_wordstobytes(C_SIZEOF_SWIG_POINTER - 1)))#define C_SYMBOL_TAG              (C_SYMBOL_TYPE | (C_SIZEOF_SYMBOL - 1))#define C_FLONUM_TAG             (C_FLONUM_TYPE | sizeof(double))#ifdef C_SIXTY_FOUR# define C_word                   long# define C_u32                    uint32_t# define C_s32                    int32_t#else# define C_word                   int# define C_u32                    unsigned int# define C_s32                    int#endif#if defined(_MSC_VER) || defined (__MINGW32__)# define C_s64                    __int64#else# define C_s64                    int64_t#endif#define C_char                    char#define C_uchar                   unsigned C_char#define C_byte                    char#define C_uword                   unsigned C_word#define C_header                  C_uword#define C_text(x)                 x#define C_TIMER_INTERRUPT_NUMBER  255#define C_BAD_ARGUMENT_COUNT_ERROR                    1#define C_BAD_MINIMUM_ARGUMENT_COUNT_ERROR            2#define C_BAD_ARGUMENT_TYPE_ERROR                     3#define C_UNBOUND_VARIABLE_ERROR                      4#define C_TOO_MANY_PARAMETERS_ERROR                   5#define C_OUT_OF_MEMORY_ERROR                         6#define C_DIVISION_BY_ZERO_ERROR                      7#define C_OUT_OF_RANGE_ERROR                          8#define C_NOT_A_CLOSURE_ERROR                         9#define C_CONTINUATION_CANT_RECEIVE_VALUES_ERROR      10#define C_TOO_DEEP_RECURSION_ERROR                    12#define C_CANT_REPRESENT_INEXACT_ERROR                13#define C_NOT_A_PROPER_LIST_ERROR                     14#define C_BAD_ARGUMENT_TYPE_NO_FIXNUM_ERROR           15#define C_BAD_ARGUMENT_TYPE_NO_NUMBER_ERROR           16#define C_BAD_ARGUMENT_TYPE_NO_STRING_ERROR           17#define C_BAD_ARGUMENT_TYPE_NO_PAIR_ERROR             18#define C_BAD_ARGUMENT_TYPE_NO_LIST_ERROR             19#define C_BAD_ARGUMENT_TYPE_NO_CHAR_ERROR             20#define C_BAD_ARGUMENT_TYPE_NO_VECTOR_ERROR           21#define C_BAD_ARGUMENT_TYPE_NO_SYMBOL_ERROR           22#define C_STACK_OVERFLOW_ERROR                        23#define C_BAD_ARGUMENT_TYPE_BAD_STRUCT_ERROR          24#define C_BAD_ARGUMENT_TYPE_NO_BYTEVECTOR_ERROR       25#define C_LOST_LOCATIVE_ERROR                         26#define C_BAD_ARGUMENT_TYPE_NO_BLOCK_ERROR            27#define C_BAD_ARGUMENT_TYPE_NO_NUMBER_VECTOR_ERROR    28#define C_BAD_ARGUMENT_TYPE_NO_INTEGER_ERROR          29#define C_BAD_ARGUMENT_TYPE_NO_UINTEGER_ERROR         30#define C_BAD_ARGUMENT_TYPE_NO_POINTER_ERROR          31#define C_BAD_ARGUMENT_TYPE_NO_TAGGED_POINTER_ERROR   32#define C_RUNTIME_UNSAFE_DLOAD_SAFE_ERROR             33#define C_RUNTIME_SAFE_DLOAD_UNSAFE_ERROR             34#define C_BAD_ARGUMENT_TYPE_NO_FLONUM_ERROR           35#define C_BAD_ARGUMENT_TYPE_NO_CLOSURE_ERROR          36#define CHICKEN_gc_root_ref(root)      (((C_GC_ROOT *)(root))->value)#define CHICKEN_gc_root_set(root, x)   C_mutate(&((C_GC_ROOT *)(root))->value, (x))#define CHICKEN_global_ref(root)       C_u_i_car(((C_GC_ROOT *)(root))->value)#define CHICKEN_global_set(root, x)    C_mutate(&C_u_i_car(((C_GC_ROOT *)(root))->value), (x))#define CHICKEN_default_toplevel       ((void *)C_default_stub_toplevel)/* Language specifics: */#if defined(__GNUC__) || defined(__INTEL_COMPILER)# ifndef __cplusplus#  define C_cblock                ({#  define C_cblockend             })#  define C_noret                 __attribute__ ((noreturn))#  define C_noret_decl(name)#  define C_aligned               __attribute__ ((aligned))# endif# ifdef __i386__#  define C_regparm               __attribute__ ((regparm(3)))# endif#elif defined(_MSC_VER)# define C_fcall                  __fastcall#elif defined(__WATCOMC__)# define C_ccall                  __cdecl#endif#ifndef C_cblock# define C_cblock                 do{# define C_cblockend              }while(0)# define C_noret# define C_noret_decl(name)#endif#ifndef C_regparm# define C_regparm#endif#ifndef C_fcall# define C_fcall#endif#ifndef C_ccall# define C_ccall#endif#ifndef C_aligned# define C_aligned#endif#define C_c_regparm/* Types: */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -