Why am I getting "error: use of undeclared identifier" error?
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
变量没问题(或者如果它们的声明没有被其他错误阻止的话)。
类型标识符 bool
有问题。它不为(旧)标准 C 所知。
如果您习惯于使用 bool
作为类型,请在成功的其他代码中找出该类型的来源。
C 最初没有对布尔值的原生支持。
为了让事情正常进行,您需要导入头文件名
#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 ”,其中包含类型 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));
}
声明 #include 到 header 中。它将 work.Thanks.
总结
错误和代码在问题的底部。
我正在编写一个简单的程序,因为我很好奇指针的大小是多少,以及当它们指向不同的数据类型时它们是否不同。
我声明了变量,为什么他们说没有声明?
此外,由于某种原因,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
变量没问题(或者如果它们的声明没有被其他错误阻止的话)。
类型标识符 bool
有问题。它不为(旧)标准 C 所知。
如果您习惯于使用 bool
作为类型,请在成功的其他代码中找出该类型的来源。
C 最初没有对布尔值的原生支持。
为了让事情正常进行,您需要导入头文件名
#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
#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));
}
声明 #include