西数超哥博客
运维经验教程分享

C 语言的布尔类型(true 与 false)

C 语言标准(C89) 没有定义布尔类型,如果你使用 true 和 false,会出现以下错误:

infinite.c:5:12: error: use of undeclared identifier 'true'
    while (true) {

1 error generated.
make: *** [infinite] Error 1

我们可以借助 C 语言的宏定义来哦设置:

//宏定义布尔类型


#define

BOOL

int


#define

TRUE

1


#define

FALSE

0


//定义一个布尔变量


BOOL

flag
=
FALSE
;

也可以通过枚举类来定义:

typedef

enum

{

true
=
1
,
false
=
0

}
bool
;

实例

#include

<
stdio.h
>


//计算n!,n的值在main中定义


int

main
(
void
)

{

int

n
=
10
;
//计算叠乘数


int

sum
=
1
;
//用来存放叠乘的结果


typedef

enum

{

true
=
1
,
false
=
0

}
bool
;
bool

flag
=
false
;
//叠乘标记


int

num
=
n
;
//循环次数


while
(
!
flag

)

{

sum
=
sum
*
(
num

)
;
//当num=1时结束循环


if
(

num
==
1
)

{

flag
=
true
;
}

}

printf

(

%d的叠乘值为 %d
\
n

,
n
,
sum
)
;
return

0
;
}

输出结果为:

10的叠乘值为 3628800 

C99 还提供了一个头文件 <stdbool.h> 定义了 bool 代表 _Bool,true 代表 1,false 代表 0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

实例

//导入 stdbool.h 来使用布尔类型


#include

<
stdbool.h
>


#include

<
stdio.h
>


//计算n!,n的值在main中定义


int

main
(
void
)

{

int

n
=
10
;
//计算叠乘数


int

sum
=
1
;
//用来存放叠乘的结果


bool

flag
=
false
;
//叠乘标记


int

num
=
n
;
//循环次数


while
(
!
flag

)

{

sum
=
sum
*
(
num

)
;
//当num=1时结束循环


if
(

num
==
1
)

{

flag
=
true
;
}

}

printf

(

%d的叠乘值为 %d
\
n

,
n
,
sum
)
;
return

0
;
}

输出结果为:

10的叠乘值为 3628800 

www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » C 语言的布尔类型(true 与 false)