home *** CD-ROM | disk | FTP | other *** search
/ Over Load / MAXIWIN7.ISO / programs / display / include / tdef.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-14  |  3.3 KB  |  135 lines

  1. #ifndef __TDEF_H
  2. #define __TDEF_H
  3.  
  4. /**********************************************************/
  5. /*/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\*/
  6. /*
  7. Copyright: 1995 - Borja Etxebarria
  8. */
  9. /*/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\*/
  10. /**********************************************************/
  11.  
  12. /**********************************************************/
  13. /* Definicion de un puntero normal, near y far  */
  14.  
  15. #define PTR  *        /* normal ptr */
  16.  
  17.  
  18. #if __MSDOS__      /* MS-DOS only */
  19.  
  20. #define PTRN  near *  /* near ptr */
  21. #define PTRF  far *   /* far ptr */
  22. #define PTRH  huge *  /* huge ptr */
  23.  
  24. #elif 1     /* other OS, assume 32 bits */
  25.  
  26. #define PTRN  PTR
  27. #define PTRF  PTR
  28. #define PTRH  PTR
  29.  
  30. #endif
  31.  
  32. /**********************************************************/
  33. /* New type definition pattern.
  34. Defines type NAME, and a set of pointers to it: normal ptr (pNAME),
  35. and near, far, huge ptrs (pnNAME, pfNAME, phNAME) */
  36.  
  37. #define __TDEF(TYPE,NAME)  \
  38.     typedef TYPE NAME;  \
  39.     typedef NAME PTR p##NAME;  \
  40.     typedef NAME PTRN pn##NAME;  \
  41.     typedef NAME PTRF pf##NAME;  \
  42.     typedef NAME PTRH ph##NAME
  43.  
  44. /**********************************************************/
  45.  
  46. __TDEF(int, INT);          /* define INT, pINT, pnINT, pfINT */
  47. __TDEF(long, LONG);
  48. __TDEF(char, CHAR);
  49. __TDEF(float, FLOAT);
  50. __TDEF(double, DOUBLE);
  51. __TDEF(void, VOID);
  52. __TDEF(int, BOOL);
  53.  
  54. __TDEF(unsigned int, UINT);
  55. __TDEF(unsigned long, ULONG);
  56. __TDEF(unsigned char, UCHAR);
  57.  
  58. /**********************************************************/
  59. /* booleans */
  60.  
  61. #define TRUE  1
  62. #define FALSE  0
  63.  
  64. /**********************************************************/
  65. /* definitions by fixed number of bits */
  66.  
  67. #if __MSDOS__
  68.  
  69. __TDEF(char, INT8);                /* signed ints */
  70. __TDEF(int, INT16);
  71. __TDEF(long, INT32);
  72. __TDEF(unsigned char, UINT8);      /* unsigned ints */
  73. __TDEF(unsigned int, UINT16);
  74. __TDEF(unsigned long, UINT32);
  75. __TDEF(char, CHAR8);               /* char */
  76. __TDEF(unsigned char, UCHAR8);     /* unsigned char */
  77. __TDEF(float, FLOAT32);            /* float types */
  78. __TDEF(double, FLOAT64);
  79. __TDEF(long double, FLOAT80);
  80.  
  81. #elif 1     /* other OS, assume 32 bit compiler */
  82.  
  83. __TDEF(char, INT8);
  84. __TDEF(short, INT16);
  85. __TDEF(int, INT32);
  86. __TDEF(unsigned char, UINT8);
  87. __TDEF(unsigned short, UINT16);
  88. __TDEF(unsigned int, UINT32);
  89. __TDEF(char, CHAR8);
  90. __TDEF(unsigned char, UCHAR8);
  91. __TDEF(float, FLOAT32);
  92. __TDEF(double, FLOAT64);
  93. __TDEF(long double, FLOAT80);
  94.  
  95. #endif
  96.  
  97.  
  98. /* other typenames for unsigned types */
  99.  
  100. __TDEF(UINT8, WORD8 );
  101. __TDEF(UINT16, WORD16);
  102. __TDEF(UINT32, WORD32 );
  103.  
  104. /**********************************************************/
  105. /* fixed length types, in octets */
  106.  
  107. __TDEF(INT8, INT1);
  108. __TDEF(INT16, INT2);
  109. __TDEF(INT32, INT4);
  110. __TDEF(WORD8, WORD1);
  111. __TDEF(WORD16, WORD2);
  112. __TDEF(WORD32, WORD4);
  113. __TDEF(UINT8, UINT1);
  114. __TDEF(UINT16, UINT2);
  115. __TDEF(UINT32, UINT4);
  116. __TDEF(CHAR8, CHAR1);
  117. __TDEF(UCHAR8, UCHAR1);
  118. __TDEF(FLOAT32, FLOAT4);
  119. __TDEF(FLOAT64, FLOAT8);
  120. __TDEF(FLOAT80, FLOAT10);
  121.  
  122. /**********************************************************/
  123. /* scope management */
  124.  
  125. #define PUBLIC
  126. #define PRIVATE static
  127. #define EXTERN extern
  128. #define STATIC static
  129. #define VOLATILE volatile
  130.  
  131. /**********************************************************/
  132.  
  133. #endif
  134.  
  135.