[b-free: 41] B-Free OS TYPES.H

磯山 卓志 (GGG03556@niftyserve.or.jp)
Tue, 13 Dec 1994 00:42:00 +0900

磯山です。

B-Free OSの、ソースコードの型表記はどうしましょうか。
1B風か2B風のどちらにしましょう?。

例えば、
1B風の場合、char が「SBYTE」となりますが、
2B風の場合、char が「B」となります。

隆一さんのコードを見てみると、2Bに近いようですね。

私の意見でいえば、1B風の方がコードの見通しがよいと思います。
2B風はシンプルでよいのですが、パッと見た時の理解が遅れると思っています。

ただ、1Bの場合、通常 unsignedの型にのみ Uをつけ、signedの場合、頭になにもつけ
ませんが(ex. WORD、UWORD)、BYTEだけ整合性がとれてません(ex. char == SBYTE、
unsigned char == BYTE)。
これだけ修正したいと思います。

/* TYPES.H */

typedef char BYTE; /* 1バイトの符号付き整数データ */
typedef unsigned char UBYTE; /* 1バイトの符号無し整数データ */
typedef short WORD; /* 2バイトの符号付き整数データ */
typedef unsigned short UWORD; /* 2バイトの符号無し整数データ */
typedef long LONG; /* 4バイトの符号付き整数データ */
typedef unsigned long ULONG; /* 4バイトの符号無し整数データ */
typedef float FLOAT; /* 単精度浮動小数点データ */
typedef double DOUBLE; /* 倍精度浮動小数点データ */

typedef enum { FALSE = 0, TRUE = 1 } BOOL;
typedef UBYTE SCODE; /* ASCII文字コード(1バイト)のデータ */
typedef UWORD TCODE; /* TRON文字コード(2バイト)のデータ */

typedef union point {
struct {
WORD h; /* 水平方向位置(X) */
WORD v; /* 垂直方向位置(Y) */
} c;
LONG l;
} POINT;

typedef union rect {
struct {
WORD left;
WORD top;
WORD right;
WORD bottom;
} c;
struct {
POINT lefttop;
POINT rightbot;
} p;
LONG l[2];
} RECT;