mql5语言的特点、微妙之处以及技巧 - 页 150

 
Denis Kirichenko:

有一个。我只从日志中调出了一条记录。完整的是这样的。

那我就不明白最后一句话是怎么说的了。

 
fxsaber:

那我就不明白最后一句话是怎么说的了。

选择 "编辑 "上下文菜单后,导航器无法在与ex5相同的路径中找到原始的mq5。

因为ex5已经从 "共享项目 "移到了scripts文件夹,而mq5就在那里。

修复。让我们做一个与测试者设置 中相同的智能搜索

 
fxsaber:

谢谢你,好的规则。成为我自己无能的受害者。真的,对于这样一个比较明显的案例,需要一些更多的规则。


也许对于这两种情况来说,警告是聪明的做法?

这里一定有一个编译错误
 
Alexey Navoykov:
这里一定有一个编译错误
哦,来吧。基于什么理由?删除并不改变指针的值,所以也不存在违反常量的问题。所以,我在这里对编译器没有任何抱怨,一切都很清楚。
 
Vladimir Simakov:
哦,来吧。基于什么理由?删除并不改变指针的值,所以也不存在违反常量的问题。因此,我对这里的编译器没有任何抱怨。
我说的是第二个样本
 
Alexey Navoykov:
我们谈论的是第二个例子
void f( const int i )
{
  static const int j = i;
  
  Print(j);
}

void OnStart()
{
  f(1); // 1
  f(2); // 1
}

静态变量在第一次调用时被初始化。
 
fxsaber:

静态变量在第一次调用时被初始化。
你确定吗?我明天要测试一下。文档中说:静态变量在运行时存在,并在调用专门的OnInit()函数之前被初始化一次。如果没有指定初始值,静态内存类变量的初始值为零。

如果你像你一样在写作,那么码头作家就有一只凶猛的虫子。
 
Vladimir Simakov:
......如果像你写的那样,那么码头上的作家就有一个坏毛病。
博士的作者是完全正确的。静态变量不能用本地值进行初始化。
如果这真的能在Mql中编译,那么这个错误一定是在一年前修复静态变量的初始化 顺序时发生的。
 
Alexey Navoykov:
码头上的作家说得很对。静态变量不能用本地值进行初始化。
如果现在在Mql中确实可以编译,那么这一定是一年前修复静态变量初始化 的一个错误。
或者代码被转换为C++标准,在这种情况下,它是文档中的一个错误。现在,我把我的头放在一起,喝咖啡,检查一下。
 

开发人员。需要作出解释。相信哪个?文档还是实施?到目前为止,我们有未定义的行为。

@fxsaber,我不建议你在官方解释之前使用它,以防他们拿去修复。