C没有任何内置布尔类型。在C语言中使用它们的最佳方式是什么?
当前回答
在布尔运算中,任何非零的值都被计算为真,因此您可以
#define TRUE 1
#define FALSE 0
并使用常数。
其他回答
如果您使用的是C99编译器,它内置了对布尔类型的支持:
#include <stdbool.h>
int main()
{
bool b = false;
b = true;
}
http://en.wikipedia.org/wiki/Boolean_data_type
C有一个布尔类型:bool(至少在过去10(!)年)
包括stdbool.h和true/false将按预期工作。
这是我使用的:
enum {false, true};
typedef _Bool bool;
_Bool是C语言中的内置类型,用于布尔值。
从好到坏:
选项1(C99及更新版本)
#include <stdbool.h>
选项2
typedef enum { false, true } bool;
选项3
typedef int bool;
enum { false, true };
选项4
typedef int bool;
#define true 1
#define false 0
解释
只有当你使用C99(或更高版本)时,选项1才会起作用,这是“标准方式”。如果可能,请选择此选项。选项2、3和4实际上具有相同的行为#2和#3不使用#defines,我认为这更好。
如果你还没有决定,那就选择#1!
这就是:
#define TRUE 1
#define FALSE 0