1
#define TRUE 1
#define FALSE 0
void function(int var)
{
if(var == TRUE) {
dosomething();
}
}
インタビュー中に、コードが表示されました。しかし、私はそれが正しいと思います。そして私は自分のコンピュータでこれを試してみる。Cコードのマクロ定義に何が問題なのですか?
#define TRUE 1
#define FALSE 0
void function(int var)
{
if(var == TRUE) {
dosomething();
}
}
インタビュー中に、コードが表示されました。しかし、私はそれが正しいと思います。そして私は自分のコンピュータでこれを試してみる。Cコードのマクロ定義に何が問題なのですか?
マクロ定義に問題はありません。ただし、条件は説明が必要です。
注意違い:
if (var == TRUE)
1
は、条件が真なり、他のすべての値は、それは偽になります。
と
if (var)
は0
を除くすべての値は、条件が真なります。 0
のみがfalseになります。
(var)がif(var == TRUE)を使用するより自然な場合は、まさに、です。 – Howo
私の場合、ここのマクロ定義は正しいです。多少「間違っている」唯一のことは、 'stdbool.h 'の定義を使用しないことです。 –
'var'が値' 2'を保持するとどうなりますか?このコードはちょっと嘘です。 – StoryTeller
私が考えることができるのは、 'if(var == TRUE)'は少し冗長で、 'if(var)'も同様に機能するということだけです。しかし、それは定義ではありません – Steve