诚信为本
量力而为
当前位置:ea编程网 EA知识 正文

MQL4编程:深入理解字符常量及其操作

MetaQuotes Language 4(MQL4)是一种用于编写交易机器人、技术指标、脚本和库的编程语言。在MQL4中,字符串的元素是Unicode字符集的索引,以16进制值的形式存在,可以转换为整数,同时可以进行整数操作,如加法和减法。

字符常量

在MQL4中,任何单个字符或者十六进制ASCII字符代码,如’\x10’,被放在引号内,就被视为字符常量,其数据类型是ushort。例如,’0’类型的记录是数字值30,对应于字符表中零的索引。

以下是使用字符常量的示例:

void OnStart() 
  { 
   int alpha='A'; 
   int beta=alpha+1;  // 得到字符 'B' 
   printf("In a decimal form: alpha = %d,  beta = %d",alpha,beta); 
   printf("In a hexadecimal form: alpha = 0x%x,  beta = 0x%x",alpha,beta); 

   string testStr="";  
   StringSetCharacter(testStr,0,alpha); 
   StringSetCharacter(testStr,1,beta); 
   Print(testStr);  // 输出 "AB"
  }

控制字符

在处理源程序中的常量字符串和字符常量时,反斜杠()是编译器的控制字符。某些符号,例如单引号(‘),双引号(“),反斜杠()和控制字符可以表示为以反斜杠()开头的符号组合,如下表所示:

字符名称符号代码或图像在MQL4中的记录数值
换行符LF‘\n’10
水平制表符HT‘\t’9
回车CR‘\r’13
反斜杠\‘\’92
单引号‘\”39
双引号‘\”‘34
十六进制代码hhhh‘\xhhhh’1至4个十六进制字符
十进制代码d‘\d’0至65535的十进制数

如果反斜杠后面跟的字符不是上表中描述的那些字符,结果是未定义的。

以下是使用这些控制字符的示例:

void OnStart() 
  { 
   int n='\n';  // 换行符 
   int t='\t';  // 制表符 
   string testStr=""; 
   StringSetCharacter(testStr,0,n); 
   Print(testStr); 
   StringSetCharacter(testStr,0,t); 
   Print(testStr); 
  }

字符常量的值

字符常量(或变量)的值是字符表中的索引。索引是整数,可以以不同的方式编写。

void OnStart() 
  { 
   int s1=0x24;  // 美元符号 $
   int s2=0x40;  // 符号 @
   Print(s1,s2); 
   string testStr=""; 
   StringSetCharacter(testStr,0,s1); 
   Print(testStr); 
   StringSetCharacter(testStr,0,s2); 
   Print(testStr); 
  }

总结,MQL4的字符常量是相当灵活的,能够通过整数操作进行处理,可以根据需要转换为整数,也能够成为字符串的一部分。理解字符常量及其操作,可以为MQL4编程带来更大的便利性。

未经允许不得转载:ea编程网 » MQL4编程:深入理解字符常量及其操作