当前位置: C语言 -- 标准库 -- <stdbool.h>

<stdbool.h>头文件

<stdbool.h>头文件定义了四个宏,分别是booltruefalse__bool_true_false_are_defined


概要:
#define bool _Bool
#define true 1
#define false 0
#define __bool_true_false_are_defined 1

描述:

bool会扩展为关键词_Bool,表示布尔类型。宏__bool_true_false_are_defined会扩展为整型常量1。如果实现定义了该宏,则表示实现支持宏booltruefalse;否则实现不支持宏booltruefalse

truefalse__bool_true_false_are_defined适用于#if预处理指令。程序可以取消booltruefalse宏定义,然后再重新定义宏booltruefalse


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
/*宏bool、true、false、__bool_true_false_are_defined范例*/

#include <ctype.h>
#include <stdbool.h>
#include <stdio.h>

#ifndef __bool_true_false_are_defined
#define bool _Bool
#define true 1
#define false 0
#endif

int main(void)
{
    int letter = 0;  //记录字母总数。
    int word = 0;  //记录单词总数。
    bool state = false;  //状态开关,当字符是字母时为true;不是为false。
    char ch;

    puts("Enter one paragraph:");

    while((ch = getchar()) != '\n')  //输入一段语句。
    {
        /*统计字母总数。*/
        if(isalpha(ch))
            ++letter;

        /*统计单词总数。*/
        if(!isalpha(ch))
            state = false;
        else if(state == false)
        {
            state = true;
            ++word;
        }
    }

    if(letter == 0)
        puts("There is no letter.");
    else
        printf("Average word length: %.1f", (float)letter/word);

    return 0;
}


结果:

假设输入:

With malice towards none, with charity for all.

将输出:

Average word length: 4.8