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|