为什么我收到“错误:使用未声明的标识符”错误?

Bri*_*ang 1 c printf null-pointer

概括

错误和代码位于问题的底部。

我正在编写一个简单的程序,因为我很好奇指针的大小是多少,以及它们在指向不同数据类型时是否有所不同。
我声明了变量,为什么他们说它们未声明?

另外,由于某种原因, 没有错误,但int*只有bool*和 ,char*如下面的错误消息所示。

代码

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int* ptri = NULL;
    char* ptrc = NULL;
    bool* ptrb = NULL;
    printf("%lu %lu %lu", sizeof(ptri), sizeof(ptrc), sizeof(ptrb));
}
Run Code Online (Sandbox Code Playgroud)

错误信息

:!clang test.c && ./a.out
test.c:7:5: error: use of undeclared identifier 'bool'
    bool* ptrb = NULL;
    ^
test.c:7:11: error: use of undeclared identifier 'ptrb'
    bool* ptrb = NULL;
          ^
test.c:8:62: error: use of undeclared identifier 'ptrb'
    printf("%lu %lu %lu", sizeof(ptri), sizeof(ptrc), sizeof(ptrb));
                                                             ^
3 errors generated.

shell returned 1
Run Code Online (Sandbox Code Playgroud)

小智 5

将 #include <stdbool.h> 声明到标头中。会起作用的。谢谢。