公众号

扫码关注公众号

客服微信号

咨询客服微信号

返回顶部
热门分类
  • 指标
  • EA
  • 模板
  • 外汇
  • 黄金
  • 学院
  • 发帖数4698
  • 粉丝30

此人很懒,什么也没有留下

所属组:管理员
用户等级:
注册时间:2017/04/25
手机:未填写电话号码
邮箱:16479791179@qq.com
简介:这个人很懒,什么也没有留下
热门排行榜
  • 本周热榜
  • 本月热榜

MQL4语言编程培训9:MQL4函数概念

[复制链接]
外汇学院 显示全部楼层 发表于 2018-1-19 22:58:51 |阅读模式 打印 上一主题 下一主题
MQL4语言编程培训9:MQL4函数概念  v5 I4 {7 o5 ~& n) K1 |. `' j

, X3 w0 _7 t- \, I3 C; B, uMQL4语言编程培训9:MQL4函数概念
4 b! O$ z) O! K. Y7 x' i) _0 l# \- b6 ?
7 X5 ]+ W# B1 }7 [7 [函数是一段已命名的程序,它可以从程序任一部分多次调用。它是由函数返回值的类型说明、函数名称、形式参数和语句块组成。传递参数的个数被限定在64个之内。
1 U% `4 F( e; Q2 n示例:; v0 j  R9 v  K/ E
, U% \* ^) o6 r. k$ Q# W! \
double                       // 返回值的类型
- r5 ~. m, X% k$ p, k# ~# ?linfunc (double x, double a, double b) // 函数名称和参量列表
9 t# [1 D4 @0 _8 m$ \6 b{
2 q' K- \: l. _( X4 D$ s                             // 语句块
: I6 j. J  R6 X   return (a + b);           // 返回表达式值8 D: P* J7 E. s
}
% p( U* x- p& p2 yreturn语句可以返回函数内表达式的值。如有必要,表达式值的类型可以转换为函数结果类型。没有返回值的函数必须定义成 “void” 型。" n/ s0 g) {8 P( L* Y* @/ w/ a
1 ^( u& V- _% M$ P4 S' y( l% x. @
示例:  Y, B6 u1 g( i2 K* J7 G4 W
+ D9 A4 ]- \! L. C# n# |8 Z
void errmesg(string s)
2 t. r6 v" u4 D; [/ q  ?  {
, x: }" z" j! |" [   Print("错误: "+s);2 _8 _' `1 H6 |# b4 |, S  z) ^
  }) u+ X4 k2 i! z0 n9 q, d" i; [
函数的参数可能存在默认值,这些默认值是用相应类型常量定义的。
( h! W* w0 o- ~0 ^. P9 c+ c4 F; Y1 t
示例:
6 g+ d2 K1 T- ?3 i0 G3 M5 m8 P( j7 P0 f& n8 G# H& X
int somefunc(double a, double d=0.0001, int n=5, bool b=true, string s="passed string")
8 D/ y% V: _- q2 K4 m" g! _% x6 u  {* C3 Z/ s5 p! k' {; T& H" c
   Print("需求参量 a=",a);
" ^) m5 C5 _! x7 A9 ~. z3 z   Print("下列参量被传送: d=",d," n=",n," b=",b," s=",s);  R1 @# ?! R: x+ U9 ?: V
   return (0);$ n$ Z; f+ ?: c- Y/ R: }& n* V
  }
* k( A- \3 U; g& h7 T; E, \如果为某个参数指定了默认值,那么所有后续的参数也必须指定默认值。6 e) Z' P; \  U% G2 u& p  Z
7 b( ~0 t' |' g' D, i" `
错误范例:# a/ r7 T; b( I9 a7 B5 h

4 t0 V/ t; {7 Y* I0 _0 i; Tint somefunc(double a, double d=0.0001, int n, bool b, string s="passed string"), n5 G, \% L" M5 C) B3 g
  {$ o/ q9 R0 F0 h1 n' a& J+ K
  }4 H8 Z1 T: R5 q% v& _7 q2 b
函数调用* x8 a+ ~# f. d1 o- N# L/ }8 X
如果在表达式前出现一个曾未用过的名字,又后跟一个左括号,在上下文环境中它将被视作函数的名字。
; O( _8 w. b: h8 f) Q0 N5 t" J3 a
- J1 L7 f" S5 Q1 V  z: O0 C函数名称 (x1, x2,..., xn)
9 H. l- _) g$ d/ [. E" ^函数自变量(形式参数) 按值的方式传递,也就是说,先计算每一个表达式xl,…,xn的值,再将其值传递给函数,表达式计算顺序及其值的传递要确保无误。在执行期间,系统将检查 那些提供给函数的值和参数的类型。这种形式的函数调用被称为“值传递”。调用函数是为了获得函数返回的表达式值。函数的定义类型必须符合函数返回值的类 型。在全局层次,我们可以在程序的任何位置定义和说明函数,即要在其他函数之外定义,在函数之内,不能定义或说明另一个函数。" G& o+ Q: F" w

+ W5 s7 ~! |: u! A8 a" W" V! b$ {2 A1 i" u, l
518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户如何炒外汇,外汇培训,外汇学习,提供外汇交易教程外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训9:MQL4函数概念./ f7 |6 g# D8 J+ I, w. z
518财经网(www.518waihui.com)立志成为全球最大的中文专业外汇论坛。为用户提供最快最全面的资讯服务,提供稳定实用的外汇交易软件系统及完善的培训教学,帮助投资者实现信息对称,让更多的投资者了解和参与外汇黄金市场。立志成为外汇论坛中的黑马网站。商务合作QQ:1967038611

★★★ 或者升级到“VIP等级”:可任意发帖+无限制金币+所有资源无限制下载。   联系管理员(微信:15000043492 )或者加QQ:1967038611 升等级!★★★
回复

使用道具 举报

精彩评论1

贵州论坛 显示全部楼层 发表于 2019-8-6 20:11:52
大家有什么好看法,赶快说说
回复

使用道具 举报

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

本版积分规则