首页
学习
活动
专区
圈层
工具
发布

MT4枚举
EN

Stack Overflow用户
提问于 2016-12-30 19:55:43
回答 1查看 2.3K关注 0票数 1

我使用MT4枚举作为选择输入:

代码语言:javascript
复制
enum ENUM_myChoice{ 
     a, b, c, e, f, g
     };

问题是如果我必须按字母顺序将"d“添加到列表中,

我使用efg的所有模板都被毁了,因为它们被关闭了1。

这是一种优雅的解决方案,还是唯一的蛮力?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2016-12-31 21:47:26

MQL4 enum anEnumNAME{...};语法是如何工作的?

井,

既然你需要保存

“老”"d“(没有enum ) ordering

和字母顺序-顺序也是

只有enum,有一件事是肯定的--您不能像上面建议的那样使用。

enum将MQL4实现为编译器阶段注册“命名常量”的语法糖,并将这些元素转换为新的特定数据类型的有序枚举(在编译阶段与其他强类型语言数据类型不匹配)。

规则:如果某个值没有分配给作为枚举成员的名为常数的,则它的新值将自动形成。如果它是枚举的第一个成员,则将将0值赋值给它。对于所有后续成员,值将根据先前成员的值通过添加一个来计算。

这意味着,你不能混淆和破坏字母表顺序和顺带排列顺序(正如在后面的标题:“按外观顺序”中所述)。

那么一个人能做什么呢?

一个Rainman解决方案(“去Holbrook,with Charlie Babbit”):

代码语言:javascript
复制
enum ENUM_myChoice{ 
     a = uchar( "a" ),
     b = uchar( "b" ),
     c = uchar( "c" ),
     e = uchar( "e" ),
     f = uchar( "f" ),
     g = uchar( "g" ),
  // ----------------- WHERE ONE CAN BENEFIT AN OUT-OF-ORDINAL ORDER ADDING:
     d = uchar( "d" )
     };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41401988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档