在 C 语言中使用布尔值
今天的教程演示了如何使用 bool、enum、typedef 和 #define 在 C 编程语言中使用布尔值。
C 中的布尔值
bool(布尔数据类型)在 C99 和更新版本中原生可用; 我们必须包含 stdbool.h 库才能使用此数据类型。 在 C99 中,本机数据类型称为 _Bool
。
另一方面,bool 是在 stdbool.h 中定义的标准库宏。 _Bool
数据类型的对象包含 1 或 0,而 true 和 false 是来自 stdbool.h 库的宏。
这意味着 C 预处理器会将 #if true
解释为 #if 1
,除非 stdbool.h 包含在 C 程序中。 同时,C++ 预处理器必须将 true 本机识别为语言文字。
在 C 中使用 bool 类型作为布尔值
示例代码:
// library to use `bool`
#include <stdbool.h>
// library to use `printf()`
#include <stdio.h>
// main function
int main(){
bool variableX = true;
if(variableX){
printf("The value of 'variableX' is True");
}
else{
printf("The value of 'variableX' is False");
}
return 0;
}
输出:
The value of 'variableX' is True
如果我们有 C99 或更新版本,我们可以使用 bool,_Bool 的别名。 我们必须包含一个名为 stdbool.h 的库(也称为头文件)以使用 bool; 否则,我们会得到一个错误。
请参阅上面给出的程序作为使用 bool 类型的实际示例。
在 C 中对布尔值使用枚举
示例代码:
// library to use `printf()`
#include <stdio.h>
// enum's declaration
typedef enum { false, true } boolean;
// main function
int main(){
boolean variableX = false;
if(variableX){
printf("The value of 'variableX' is True");
}
else{
printf("The value of 'variableX' is False");
}
return 0;
}
输出:
The value of 'variableX' is False
上面给出的代码片段是为那些使用 C89/90 或不想使用原生 bool 类型的人提供的解决方案。 我们可以使用枚举函数来创建 bool 类型。
枚举(也称为 Enumeration)是 C 编程中的一种用户定义数据类型,用于为整数常量分配名称; 为什么? 这些名称使程序易于阅读、理解和维护。
我们通过为布尔类型创建一个新名称来使用布尔值。 为此,我们使用 typedef 关键字,该关键字用于为类型赋予新名称(请参阅本节的示例代码,其中我们为 bool 类型提供新名称,即布尔值)。
一旦我们执行上面给出的代码,一个枚举将被创建为 bool 类型。 进一步,将枚举的元素设置为假和真。
第一和第二个位置将被 false 占用以保持 0 和 true 以保持 1。
在 C 中对布尔值使用 typedef 和 #define
我们可以通过以下两种方式使用布尔值作为第二种方法的替代方法,我们将枚举用于布尔值。
示例代码 1:
// library to use `printf()`
#include <stdio.h>
// declare a variable of `int` type
typedef int boolean;
// declare enum
enum { false, true };
// main function
int main(){
boolean variableX = true;
if(variableX){
printf("The value of 'variableX' is True");
}
else{
printf("The value of 'variableX' is False");
}
return 0;
}
示例代码 2:
// library to use `printf()`
#include <stdio.h>
// declare a variable of `int` type
typedef int boolean;
//define macros
#define true 1;
#define false 0;
// main function
int main(){
boolean variableX = true;
if(variableX){
printf("The value of 'variableX' is True");
}
else{
printf("The value of 'variableX' is False");
}
return 0;
}
这两个代码示例都产生了下面给出的相同结果。
输出:
The value of 'variableX' is True
在示例代码 2 中,我们使用了 #define
(也称为宏指令),它是用于在 C 程序中定义宏的预处理器指令。
相关文章
在 C 语言中使用 typedef enum
发布时间:2023/05/07 浏览次数:181 分类:C语言
-
本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。
C 语言中的 extern 关键字
发布时间:2023/05/07 浏览次数:114 分类:C语言
-
本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量
C 语言中的 #ifndef
发布时间:2023/05/07 浏览次数:186 分类:C语言
-
本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。