概括
错误和代码位于问题的底部。
我正在编写一个简单的程序,因为我很好奇指针的大小是多少,以及它们在指向不同数据类型时是否有所不同。
我声明了变量,为什么他们说它们未声明?
另外,由于某种原因, 没有错误,但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), …Run Code Online (Sandbox Code Playgroud) 我有一个 while 循环,如果 while 循环至少运行一次,我希望运行一些代码行。如果while循环没有运行,我想跳过这行代码。
while(condition) {
doSomething();
}
doSomethingElse();
/* Only run doSomethingElse() if the while loop ran
at least once */
Run Code Online (Sandbox Code Playgroud)
我可以在运行之前将 bool 设置为 false,并在运行时将其设置为 true,但对我来说感觉有点混乱。此外,这个 while 循环在一个最多可以运行 10^6 次的函数中,并且它有时间限制,所以我希望它尽可能高效地运行。有没有办法做到这一点?
*注意:不要将此与无论如何都至少运行一次的 do-while 循环混淆。我想要一行代码,仅当 while 循环至少运行一次时才运行。