EATC

 找回密码
 立即注册
查看: 1043|回复: 2

外汇EA编程教程――变量

[复制链接]

196

主题

1168

帖子

8003

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8003
发表于 2022-7-23 17:04:55 | 显示全部楼层 |阅读模式
1 本地变量:

定义在函数内部的变量称为本地变量,它的作用范围只有在定义它的函数内可以访问,在函数外面的代码,不能访问函数里面的变量。例如:

int funcname(int a)

{

int abc; //函数内部的变量,只能由函数里面的代码访问,函数外部不能访问变量abc;

}

2 函数参数:

函数参数的各个变量名称不能函数内部变量重名。参数也可以指定默认值,例如:

void func(int x, double y = 0.0, bool z = true)

{

...

}

这个函数指定了y的默认值为0.0,z的值为true。

调用这个函数的时候,可以不指定有默认值的参数值。如func(9), 则相当于 func(9, 0.0, true)这样调用。如果调用了func(9, 1.5) 则相当于调用了 func(9, 1.5, true).

一般情况下,函数参数是传值。在函数里面改变参数的值,不会变化到调用该函数的程序块。即使是数组也是传值进去。

那么我们如何传引用呢?通过传引用,如果函数里面的参数值改变了,对应的调用该函数的代码段的变量值会跟着改变。如果要传引用,则需要在函数参数类型后面添加符号 '&',如:

void func(int& x, double& y, double& z[])

{

x = 8;

}

有一点需要注意:如果是传引用的函数参数,不能对参数进行预设置默认值。

参数参数不能超过64个。

3 全局变量:

全局变量是与函数同级别的变量,它的作用域是整个MQL代码。也就是说整个MQL各个地方都能访问到全局变量。如:

int a = 10;

int funca()

{

Print(a); //可访问到全局变量a

return (0);

}

int funcb()

{

Print(a); //可访问到全局变量a

return (1);

}

4 外部变量:

如果一个变量被定义为外部变量,则EA客户端可以设置这个外部变量的值。

例如:

extern int a = 10;

extern color c = red;
回复

使用道具 举报

2992

主题

5574

帖子

2万

积分

交易元老

Rank: 8Rank: 8

积分
29056
发表于 2022-10-9 10:18:35 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2718

主题

5151

帖子

2万

积分

交易元老

Rank: 8Rank: 8

积分
21554
发表于 2023-10-17 10:06:11 | 显示全部楼层
thankyou
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏本站|法律声明|Archiver|小黑屋|support@ea198.com|EATC ( 桂ICP备2022005787号 )

风险提示与免责声明:擅自从事外汇保证金交易的双方不受法律保护!社区内展示内容,均为网友自发分享,不构成投资建议,社区无法全面监控由第三方上传至社区的资源,因此不保证资源的合法性、安全性、完整性、真实性或品质等。您下载时,同意自行判断并承担所有风险。社区内的资源,仅限用于学习和研究目的,不得将用于商业或者非法用途,否则,一切后果请用户自负。社区信息来自网络,版权争议与社区无关,您下载后须在24个小时之内进行删除。如果您喜欢该内容,请支持正版。如有侵权请邮件与我们联系处理。