前述のように、BOOL は signed char です。bool - C99 標準の型 (int)。
BOOL - はい/いいえ。bool - 真/偽。
例を参照してください:
bool b1 = 2;
if (b1) printf("REAL b1 \n");
if (b1 != true) printf("NOT REAL b1 \n");
BOOL b2 = 2;
if (b2) printf("REAL b2 \n");
if (b2 != YES) printf("NOT REAL b2 \n");
そして結果は
REAL b1
REAL b2
NOT REAL b2
bool != BOOL であることに注意してください。以下の結果は、ONCE AGAIN - REAL b2のみです。
b2 = b1;
if (b2) printf("ONCE AGAIN - REAL b2 \n");
if (b2 != true) printf("ONCE AGAIN - NOT REAL b2 \n");
bool を BOOL に変換したい場合は、次のコードを使用する必要があります
BOOL b22 = b1 ? YES : NO; //and back - bool b11 = b2 ? true : false;
したがって、私たちの場合:
BOOL b22 = b1 ? 2 : NO;
if (b22) printf("ONCE AGAIN MORE - REAL b22 \n");
if (b22 != YES) printf("ONCE AGAIN MORE- NOT REAL b22 \n");
それで..今何が得られますか?:-)