跳至内容

Extern Variables

Extern 变量

extern 存储类用于定义外部变量。extern 修饰符位于数据类型之前。

//--- extern parameters
extern int            MA_Period=13;
extern int            MA_Shift=0;
extern ENUM_MA_METHOD MA_Method=MODE_SMMA;

input-变量类似,extern 变量也决定了 mql4 程序的输入参数。它们可以在属性窗口中访问。与 input 变量不同,extern 变量的值可以在程序运行期间进行修改。外部变量在调用 OnInit() 之前会立即重新初始化。

示例:

//--- strict compilation mode
#property strict
//--- show input parameters
#property show_inputs
//--- declare extern and input variables
extern int ExtVar=1;   // ExtVar extern variable
input  int InpVar=2;   // InpVar input variable
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- display the values of ExtVar and InpVar variables
   PrintFormat("Extern=%d, Input=%d",ExtVar,InpVar);
//--- increase the value of ExtVar variable by one
   ExtVar++;
//--- attempt to change the input variable will result in the compilation error
//--- InpVar++;
//--- display the values of ExtVar and InpVar variables
   PrintFormat("Extern=%d, Input=%d",ExtVar,InpVar);
  }

此脚本设置了严格编译模式,并显示了输入参数窗口的输出。因此,字符串注释中设置的数值而不是 ExtVar 和 InpVar 变量名会显示在变量字段中。

Extern-variables-strict-mode

注意:数组和 复杂类型的变量不能作为 extern 变量使用。

注意:extern 变量的字符串注释长度不得超过 63 个字符。

另请参阅

输入变量数据类型类型的封装和扩展性变量的初始化变量的可见性范围和时间生命周期对象的创建和删除

最后更新于