types.h

C:\home\SVGCats_src\src\types.h

[目次 | 型・クラス・構造体 | マクロ]

目次

型・クラス・構造体一覧

マクロ一覧


   1|/**************************************************************************
   2|*  1. <<< 基本型 (types) >>> 
   3|***************************************************************************/
   4|
   5|#if defined(FOR_WINCE) && defined(__WINDOWS__)
   6| #error  Can not include with windows.h for Windows CE
   7|#endif
   8|
   9|#ifndef __TYPES_H_  /* avoid for types.h define of borland */
  10|#define __TYPES_H_
  11|
  12| 
  13|/**************************************************************************
  14|*  2. <<< モジュールプロパティ >>> 
  15|***************************************************************************/
  16|/*----------------------------------------------------------------------
  17|[Module Property]
  18|name = Types
  19|title = 基本型
  20|category = 基本型
  21|src =
  22|depend =
  23|priority =
  24|accord =
  25|----------------------------------------------------------------------*/
  26|
  27|
  28| 
  29|#ifndef USES_PRIORITY_HEADER /*----------------------------------*/
  30|/*[START_OF_PRIORITY_HEADER]*/ 
  31|
  32|#define  USES_TYPES
  33|
  34| 
  35|/**************************************************************************
  36|*  3. <<< 基本型の省略形 >>> 
  37|*  4. <<< [u_char, u_short, u_int, u_long] >>>
  38|***************************************************************************/
  39|#ifndef  TYPES_NOT_DEFINE_U_INT
  40|
  41|typedef  unsigned char   u_char;
  42|typedef  unsigned short  u_short;
  43|typedef  unsigned int    u_int;
  44|typedef  unsigned long   u_long;
  45|
  46|#endif
  47|
  48| 
  49|/**************************************************************************
  50|*  5. <<< NULL ポインタ >>> 
  51|*  6. <<< [NULL] >>>
  52|***************************************************************************/
  53|#ifndef  NULL
  54| #ifdef __cplusplus
  55|  #define   NULL  0
  56| #else
  57|  #define   NULL  ((void*)0)
  58| #endif
  59|#endif
  60|
  61| 
  62|/**************************************************************************
  63|*  7. <<< [STATIC] >>> 
  64|***************************************************************************/
  65|#ifndef  TYPES_NOT_DEFINE_STATIC
  66|
  67|#ifdef  NDEBUG
  68|  #define  STATIC  static
  69|#else
  70|  #define  STATIC
  71|#endif
  72|
  73|#endif
  74|
  75| 
  76|/**************************************************************************
  77|*  8. <<< 論理型 >>> 
  78|*  9. <<< [bool, true, false] >>>
  79|*【補足】
  80|*・論理型は、ANSI C++ の基本型です。
  81|***************************************************************************/
  82|#ifndef  TYPES_NOT_DEFINE_BOOL
  83|
  84|/* bool 型がコンパイラで定義されているかどうか判定する */
  85|#ifndef __cplusplus
  86|  #define  TYPES_BOOL_CPP_NEED
  87|#else
  88|  #if _MSC_VER < 1100
  89|    #define  TYPES_BOOL_CPP_NEED
  90|  #endif
  91|#endif
  92|
  93|
  94|/* bool 型を定義する */
  95|#ifdef TYPES_BOOL_CPP_NEED
  96|
  97|typedef  char  bool;
  98|#define  true  1     /* 1, 0 以外の値も true ですので x == true で判定してはいけません */
  99|#define  false 0
 100|
 101|#endif  /* TYPES_BOOL_CPP_NEED */
 102|
 103|
 104|#ifndef __cplusplus
 105|#undef  TYPES_BOOL_CPP_NEED
 106|#endif
 107|
 108|
 109|
 110|/**************************************************************************
 111|*  10. <<< [Bool_chk] 論理型の正規チェック >>>
 112|***************************************************************************/
 113|#define  Bool_chk(var)   ( (var)==true || (var)==false )
 114|
 115|
 116|#endif  /* TYPES_NOT_DEFINE_BOOL */
 117|
 118| 
 119|/**************************************************************************
 120|*  11. <<< 基本型 : OS, Device Driver 用 >>> 
 121|***************************************************************************/
 122|
 123|#ifndef  TYPES_NOT_DEFINE_TYPE_OF_OS
 124|
 125|/* uITRON DATA TYPE definition */
 126|typedef char				B;			/*	符号付き8ビット整数			*/
 127|typedef short				H;			/*	符号付き16ビット整数		*/
 128|typedef long				W;			/*	符号付き32ビット整数		*/
 129|typedef unsigned char		UB;			/*	符号なし8ビット整数			*/
 130|typedef unsigned short		UH;			/*	符号なし16ビット整数		*/
 131|typedef unsigned long		UW;			/*	符号なし32ビット整数		*/
 132|typedef char				VB;			/*	データタイプなし8ビット		*/
 133|typedef short				VH;			/*	データタイプなし16ビット	*/
 134|typedef long				VW;			/*	データタイプなし32ビット	*/
 135|typedef void				*VP;		/*	データタイプなしポインタ	*/
 136|typedef void				(*FP)();	/*	プログラムスタートアドレス	*/
 137|typedef int					INT;		/*	符号付き整数プロセッサ依存	*/
 138|typedef unsigned int		UINT;		/*	符号なし整数プロセッサ依存	*/
 139|
 140|typedef H					ID;			/*	オブジェクトID				*/
 141|typedef H					HNO;		/*	ハンドラ番号				*/
 142|typedef W					ER;			/*	符号付きエラーコード		*/
 143|typedef W					TMO;		/*	タイムアウト				*/
 144|typedef H					FN;			/*	機能コード					*/
 145|
 146|#ifndef  TRUE
 147|#ifndef  WIN32
 148|typedef H					BOOL;		/*	ブール値 FALSE/TRUE			*/
 149|#endif
 150|#define TRUE				(0 == 0)
 151|#define FALSE				(!TRUE)
 152|#endif
 153|
 154|#endif /* #ifndef  TYPES_NOT_DEFINE_TYPE_OF_OS */
 155| 
 156|/*[END_OF_PRIORITY_HEADER]*/ 
 157|#endif /* USES_PRIORITY_HEADER */ /*----------------------------------*/
 158| 
 159|#endif   /* __TYPES_H */ 
 160|
 161|
 162|
 163| 
 164|