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

时间:2012-11-26 12:19:08

标签: c function loops static

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

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

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

1 个答案:

答案 0 :(得分:6)

在函数中只需要一个static变量。

void drawCursor()
{
    static int counter;

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

}