香港:
  • 纽约:
  • 伦敦:
  • 东京:
  • 悉尼:
  • 香港:
  • 新加坡:
首页> 资讯> 最新 >正文

【0基础MQL4 EA编程1-3】变量

William 2024-05-08 16:16:02 关注
熟悉外部变量的两种声明方式input 和 extern,认识全局变量和局部变量的区别和变量命名规范!

文章来源:123财经导航

作者:William

(第一单元)第3小节:变量

外部变量

1、主要特征

常用的外部变量关键字有input 和 extern,都可以用于定义外部参数修改页面的变量,但实际细节有些差别

  • 带有input修饰符的变量:内部可访问和读取,但不能在程序内部更改或再赋值,必须在外部程序属性里更改其值;
  • 带有extern修饰符的变量:可以在程序运行期间同时在程序内部和外部修改其值,并在每次被初始化时恢复为外部值;

2、显示样式

严格编译模式下,变量字段在外部可以显示注释名称;反之只显示变量名



变量分类   

变量大致可以分为全局变量和局部变量两种,是在编程中常见的两种变量类型,它们在作用域、生命周期和访问范围等方面有所区别。以下是对全局变量和局部变量的介绍。

1、全局变量:

  • 特点:在程序的任何地方都可以访问的变量,在整个程序执行过程中都存在。
  • 作用域:全局变量的作用域是整个程序。
  • 声明和定义:通常在函数外部声明和定义全局变量
  • 生命周期:生命周期与程序的生命周期相同,即在程序启动时创建,在程序结束时销毁。
  • 访问范围:可以被程序中的任何函数或模块访问和修改数据。
  • 用途解析:用于保存需要长期保留的数据

2、局部变量:

  • 特点:在局部范围内可见和访问的变量。
  • 作用域:局部变量的作用域仅限于其所属的代码块或函数,超出该范围后将不再可见。
  • 声明和定义:在函数内部声明和定义局部变量。
  • 生命周期:在所属的代码块或函数执行期间存在,当代码块或函数执行结束时,局部变量会被销毁。
  • 访问范围:只能在其所属的代码块或函数内部访问,其他代码块或函数无法直接访问。
  • 用途解析:用于存储函数内的临时数据

3、静态变量

静态变量是一种特殊类型的局部变量,以“static”关键字标识,具有以下特点:

  • 生命周期延长:与普通局部变量不同,静态变量的生命周期不仅限于其所在的代码块,而是在整个程序的执行期间都存在。
  • 初始值仅赋值一次:静态变量在首次访问时被赋予初始值,之后每一次修改和调用时,静态变量都会记录上一次的值。
  • 作用域:静态变量仍然具有局部作用域,仅在定义它们的代码块内可见和可访问。

使用注意事项

  • 命名冲突:在程序中,应避免全局变量和局部变量之间的命名冲突,以免造成混淆和错误。
  • 变量初始化:在使用变量之前,确保对其进行初始化,以避免使用未初始化的变量导致的不确定行为。
  • 作用域限制:在设计程序时,应根据需要选择合适的变量作用域,避免将变量的作用域扩散到不必要的范围。
  • 变量的生命周期:对于全局变量,应谨慎管理其生命周期,确保在适当的时候创建和销毁。对于局部变量,避免在超出其作用域的范围内访问。

命名规范   

当编写 MQL4 代码时,正确的命名规范可以帮助提高代码的可读性和维护性,养成良好的命名规范习惯,也是编程过程中的一项基础必修课,以下是命名中的一些建议:

  • 使用有意义的变量名:选择能够准确描述变量用途的名称。避免使用单个字母或无意义的缩写。

  • 使用小驼峰命名法:变量名的第一个单词首字母小写,后续单词首字母大写,不使用下划线或其他分隔符。小驼峰命名举例:myVariable。

  • 避免使用保留关键字:确保变量名不是 MQL4 中的保留关键字(常量),以避免编译错误。

  • 使用清晰的命名:选择能够清晰表达变量用途的名称。尽量避免使用含糊不清、容易混淆的变量名。

  • 使用英文单词:使用英文单词来命名变量,以确保代码的一致性和易读性,虽然说很多语种是直接支持命名的比如中文,但是为了减少错误发生,尽可能用英文(一部分老外的EA乱码其实就是这个问题导致本地字库匹配失败)。

  • 避免过长的变量名:变量名应该足够描述其用途,但也不要过长,以免影响代码的可读性。

  • 注意大小写:MQL4 对变量名的大小写是敏感的,因此要确保在使用变量时大小写一致。另外,由于MQL4中保留常量多数以大写表示,为了不混淆,尽可能避免全大写命名

  • 避免非法命名:根据MQL4的命名规范,变量名不能以数字开头;必须以字母或下划线开头。否则编译器将会报错。以下是一些合法的变量名示例:

本节知识点

  • input关键字:外部输入(不可在内部更改)
  • extern关键字:外部输入(可以在内部更改)
  • 用于在整个代码中共享数据:全局变量
  • 用于函数中保存临时计算数据:局部变量
  • 用于在函数中长久记录数据上一次的数据:静态变量
  • 同一个作用域内,不能有相同命名的变量名称
  • 命名规范:不能使用数字开头,尽量不使用除英文字母以外的变量命名
【免责声明】123财经导航所发布的信息内容仅供交易投资者参考,并不构成投资建议“据此操作,风险自担”。网站上部分信息内容及图片来自于网络/注册作者/投稿人,版权归原作者所有,如有侵权,请您与我们联系关闭,邮箱:938123@qq.com。
第三方账号登录
第三方账号登录
第三方账号登录
  • *站点:
  • *网址:
  • 类型:
  • 联系方式:
  • 简介:

  • RRH123欢迎您的加入!如有问题请添加咨询管理员【微信号:938123】
  • *类型:
  • *问题:
  • 图片说明:
  • 联系方式:

  • RRH123感谢您的反馈!如有问题请添加咨询管理员【微信号:938123】