下载MetaTrader 5

静态变量

静止存储类称为静态变量。在数据类型之前指定静态修饰符。

示例:

int somefunc()
  {
   static int flag=10;
   ...
   return(flag);
  }

与简单的仅能用表达式初始化的局部变量不同的是,静态变量可以通过相关的常量和常量表达式初始化

静态变量存在于程序执行期,在特别函数OnInit()调用前初始化。如果未指定初始化值,静态变量为零初始化值。

关键字 static 声明的局部变量通过函数使用期保留值。下次调用函数时,局部变量会包含上次调用的值。

任何变量,除了函数的形式参数,都称为静态变量。如果局部变量声明不是静态,变量内存会在程序中自动分配。

示例:

int Counter()
  {
   static int count;
   count++;
   if(count%100==0) Print("Function Counter has been called ",count," times");
   return count;
  }
void OnStart()
  {
//---
   int c=345;
   for(int i=0;i<1000;i++)
     {
      int c=Counter();
     }
   Print("c =",c);
  }

另见

数据类型类型密封和扩展变量初始化可见范围和变量使用期创建和删除对象, Static Class Members