3

Cにはブール型がないので、Cで次のような関数を作成するにはどうすればよいですか。

bool checkNumber()
{
   return false;
}
4

4 に答える 4

17

boolタイプはヘッダーで定義され、それ以外<stdbool.h>の名前で使用でき_Boolます(C99コンパイラーを使用している場合)。C99をお持ちでない場合は、いつでも次のような独自のブール型を作成できます。

typedef enum {false, true} bool;
于 2011-01-20T21:48:00.900 に答える
9

int少なくともC99より前は、Cでブール値として一般的に使用されます。ゼロは偽を意味し、ゼロ以外は真を意味します。

于 2011-01-20T21:47:56.100 に答える
1

C99を使用しておらず、独自のブール型を追加する必要があると判断した場合は、必ず独自の名前を付けてください。'bool'または'BOOL'を使用すると、サードパーティのライブラリを含める場合にのみ問題が発生します。唯一の例外は、次のデファクトスタンダードを使用することです。

#define BOOL int
#define TRUE 1
#define FALSE 0

ただし、これらを#ifndefでラップするようにしてください。ただし、一部のライブラリでは「char」をBOOLとして使用していることに注意してください。C ++のバックグラウンドを使用している場合は、C++と相互運用するかどうかを検討してください。

于 2011-01-20T22:54:12.273 に答える
1

定義を使用して、ブール論理にintと1および0を直接使用しないようにすることができます。

#define BOOL char
#define TRUE 1
#define FALSE 0

BOOL4ではなく1バイトしかないため、charを選択しました(ほとんどのシステムの場合)

于 2011-01-20T21:51:02.580 に答える