VC静态变量问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 15:55:54
求教:
在VB中,定时器的计数可以在定时器Timer中加入以下代码:
static n as Long
n=n+1
在VC中,由于所有的变量都必须先初始化才能使用,所以如果照搬用静态变量static n=0;n++;那么n将永远等于1.难道非要用个private的变量,并且在计时器初化化的时候赋初值,然后在OnTimer()事件中写n++;这样代码似乎很分散,为实现这样简单的一点功能,有必要绕这么大圈子吗?有没有好一点的办法呢?

C静态变量不是这样的,你的理解完全错了
int fun(int a)
{
static int count = 0;
count++;
return count;
}
count = 0 是在定义count时将count初始化为0
而不是每次调用count = 0,调用一次fun函数 count就 + 1,
你可以将这个函数调用一下,看一下返回值就明白了

n不会永远等于1啊。第一次等于1,第二次等于2,。。。

因为n是静态变量,所以会一直贮存在内存中,知道程序退出。static int n=0只执行一次。