|
|
发表于 2009-7-15 12:27:21
|
显示全部楼层
原帖由 vip_lws 于 2009-7-14 09:44 发表
我想确认下,如果我只是想在一开始给它赋予0值,是不是就要使用静态变量,这样的话,在动态计算过程中,这个值赋值语句就不会在运行了。就可以达到累加的效果。
DEFINE_XXXXX(XXX)
{
static a=0;
a+=delta_a;
.....
}
初次进入的时候会执行设置a为零,第二次进入的时候是不会再设置a为零的。静态变量存储在静态存储区,和全局变量类似,即使在子函数外面,该静态变量的存储区域也不会清空,所以下次在进入的时候就会保留上一次的值。另外static a=0;的意思是定义变量的时候同时初始化,一定要写在一行上面,千万不要如下写
static a;
a=0;
那就变成定义变量,然后给该变量赋值了,不是初始化a值了。如果这样写,每次进入的时候都会执行a=0; |
|