开始之前你可以复习“数据类型”那一课。 变量的声明: 你可以通过使用关键字(int, double, char, bool, string, color 和 datetime)和你选择的变量名来声明一个变量并指定它的类型。 例: int myvaraible; 在这儿你声明了一个叫做myvaraible的整型变量。在声明之前你不能在程序里使用它。如果你使用了未经声明的变量,MQL4编译器将报错并给除如下信息:
variable not defined. 1 error(s), 0 warning(s). 变量的初始化: 变量初始化的意思是给这个变量赋值。例如:myvaraible=10;你也可以在声明行对变量进行初始化,例如:int myvaraible=10;并且你可以像下面这样,在一个地方声明变量。然后在另一个地方对它进行初始化: int myvaraible; ……… Myvaraible=10; 记住:只能初始化一个被声明了的变量。或者说初始化之前必须先声明。 变量的范围: 变量有两个范围:局部变量和全局变量。 范围的意思是程序的那一部分可以知道并使用这个变量。 局部变量: 局部变量的意思是在它被声明的区域外不能被识别。例如,被声明在函数中的变量是函数代码的局部变量。还有循环和选择中声明的变量,它只能在循环和选择中被局部的识别和使用。 例: double my_func (double a, double b, double c) { int d ; return (a*b + c); } 在上面的例子中,a,b,c,d都是局部变量,它们仅能在函数代码块中使用。因此在上面的例子中,如果我们在大括号的后面写上这样一行:d=10;,那么就是错误的了。因为局部变量只能在它被声明的区中中被识别和使用。大括号外已经不是它被声明的区域了。 全局变量是被声明在任何代码块(函数,循环,选择)之外的变量,它在程序的任何部分被识别和使用。例: int Global_Variable; double my_func (double a, double b, double c) { return (a*b + c + Global_Variable); } 全局变量如果不被初始化,将被自动设置为0. 外部变量: 关键字extern被用来声明一种特殊类型的变量。 例: extern color Indicator_color = C'0x00,0x00,0xFF'; // 蓝色 int init() { ... } 外部定义的可变量。 在数据类型公布之前指定外部变量。 示例: extern double InputParameter1 = 1.0; extern color InputParameter2 = red; int init() { ... } 确定从外部程序输入的变量, 会直接显现输入数据窗口。数列本身不能作为外部变量。
在上图中,Period, Shift, MA_method, Apply_to和Style都是extern定义的变量。 最后感谢大家,欢迎回帖批评指正。
|