[英]Why am I getting “error: use of undeclared identifier” error?
概括
錯誤和代碼位於問題的底部。
我正在編寫一個簡單的程序,因為我很好奇指針的大小是多少,以及當它們指向不同的數據類型時它們是否不同。
我聲明了變量,為什么他們說它們未聲明?
此外,由於某種原因, 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));
}
錯誤信息
:!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
將#include <stdbool.h> 聲明到 header 中。 它會工作的。謝謝。
變量很好(或者如果它們的聲明沒有被其他錯誤阻止)。
類型標識符bool
有問題。 (舊)標准 C 不知道它。
如果您習慣於使用bool
作為類型,請在您成功的其他代碼中找出該類型的來源。
C 最初沒有對 boolean 值的原生支持。 為了使事情正常工作,您需要導入 header 文件名 <stdbool.h>
#include <stdio.h>
#include <stdbool.h>
int main(void) {
int* ptri = NULL;
char* ptrc = NULL;
bool* ptrb = NULL;
printf("%lu %lu %lu", sizeof(ptri), sizeof(ptrc), sizeof(ptrb));
}
你應該寫這個 header "#include <stdbool.h>" 包含類型 bool
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(void) {
int* ptri = NULL;
char* ptrc = NULL;
bool* ptrb = NULL;
printf("%lu %lu %lu", sizeof(int), sizeof(char), sizeof(bool));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.