gpt4 book ai didi

c - 如何实现: do something if the function hasn't been called yet?

转载 作者:太空狗 更新时间:2023-10-29 16:05:18 25 4
gpt4 key购买 nike

在 C 语言中有没有一种方法可以做到:如果一个函数在之前的代码部分中没有被调用过,那么就调用它,否则如果之前已经调用过,那么就不要调用它?

下面是一些代码:

while (function hasn't been called)
{
// do some code
}
else (call the function)
{
// do something else
}

类似的东西?

最佳答案

嗯,这很简单。只需使用一个静态变量。

void foo() {
static int hasBeenCalled = 0;
if(!hasBeenCalled) {
/* Do stuff */
hasBeenCalled = 1;
}
}

您不必为全局变量和静态变量执行初始化,因为它们具有默认值 0,而局部变量则没有。但恕我直言,它看起来好多了。全局变量和静态变量很少使用,我看不出使用这个“特性”有什么意义。

从技术上讲,您仍在使用上述方法调用该函数。如果这是一个问题,您可以使用全局变量并将我使用的逻辑放在外面。这是一个工作示例:

int hasBeenCalled = 0;

void foo() {
while(!hasBeenCalled) {
/* Do stuff that eventually calls bar() */
}
}

void bar() {
hasBeenCalled=1;
/* Do stuff */
}

int main() {
foo();
}

关于c - 如何实现: do something if the function hasn't been called yet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55942340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com