C では、true は 0 以外のものです (ただし、状態の値を定義するために列挙型を使用することがよくあります)。したがって、真実のテストを行うには、次のことができます。
typedef enum
{
FALSE,
TRUE
} BOOL;
// Some function
BOOL n = isTrue();
if (n)
{
// Do something
}
議論はありますが、私や他の人たちは次のことを好みます。
if (n == TRUE)
{
// Do something
}
しかし、何らかの理由でisTrue()
関数が true に対して 1 以外の値を返した場合、後者は機能せず、true は false と見なされます。
私は、最初の方法がそれを行う方法であるべきであることを示すコードレビューを行ってきました。しかし、値が設定されていないときに 3 番目の状態のアイデアが必要になる場合があることに突然気付きました。しかし、Cでこれを行うことさえ可能であり、最初の方法でブール比較を行うことは可能ですか?他の値をこの「NULL」値に割り当てると、trueとして記録されます