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|