在C中,有什么方法可以使函数在其调用之间共享数据?

use*_*233 0 c static loops function

我在C中编写应用程序.其中一个屏幕有一个光标.光标需要保持闪烁.我有一个无限的while循环,不断刷新屏幕.为了获得闪烁的效果,在此while循环的每第五次迭代中,光标需要在显示和消失之间交替.

我需要以某种方式保持迭代的计数.我可以在while循环之外声明一个可以进行计数的变量,但是觉得这样不太优雅,因为我有一个drawCursor()更新游标状态的函数,这需要处理它而不必在while循环外声明这个变量.

没有这个计数整数,有没有办法做到这一点?完成此光标闪烁效果的优雅方法是什么?

Gra*_*and 6

只需static在函数内部有一个变量.

void drawCursor()
{
    static int counter;

    if ((counter++ % 5) == 0)
    {
        // toggle the cursor state 
    }

}
Run Code Online (Sandbox Code Playgroud)