これは簡単な質問だと思いますが、私は次のことに苦労しています。私の例では、次のステートメントがあります(言語はCです)。
int foobar
if (foobar)
{
// do something.
}
さて、これについて正しければ、foobarがゼロでない場合、このステートメントは真です。したがって、。とほとんど同じである必要がありますif (foobar!=0)。
foobarしかし、負の数になるとどうなりますか?
これは簡単な質問だと思いますが、私は次のことに苦労しています。私の例では、次のステートメントがあります(言語はCです)。
int foobar
if (foobar)
{
// do something.
}
さて、これについて正しければ、foobarがゼロでない場合、このステートメントは真です。したがって、。とほとんど同じである必要がありますif (foobar!=0)。
foobarしかし、負の数になるとどうなりますか?
ネガティブまたはポジティブ。0 以外は真の値です。if
また、負の数を考えてみましょう: -1
C の -1 は内部的に次のように表されます: 0xFFFFFFFF、この場合、符号なし整数にキャストすると正の数になります。
しかし、C99 標準コンパイラの出現後は、
<stdbool.h>代わりに使用することをお勧めします。推測の作業を大幅に軽減します。
同じ、
if (foobar)
foobar がゼロでないことを意味するので、正か負かは関係ありません。それでもゼロではありません
foobar が負の数の場合 (それでもゼロとは異なります)、ステートメントは true を返す必要がありますが、そのような方法で異なる「true」値を持つ可能性のある変数をテストすることはベスト プラクティスではないため、そのようなテストは避ける必要があります。