错误、漏洞、问题 - 页 2479

 
在编纂这个冲刺的时候
void Func() { return(true); }

void OnStart()
{
  if (Func())
    ;
}


这个日志。

'if' - expression of 'void' type is illegal     Test8.mq5       5       3
empty controlled statement found        Test8.mq5       6       5
'return' - 'void' function returns a value      Test8.mq5       1       15
2 error(s), 1 warning(s)                3       2


突出了两个错误。他们在源头上不自上而下,这正常吗?

 
fxsaber:
在编纂这个冲刺的时候。


这个日志。


突出了两个错误。他们在源代码中不自上而下,这正常吗?

空白函数可以返回一个值吗?

void Func() { return(true); }
 
Alexey Viktorov:

空白函数可以返回一个值吗?

这个错误是专门为这个例子而犯的。我问的是别的事情。

 
fxsaber:

突出了两个错误。他们不从源代码的顶部到底部,这是否正常?

好吧,你可以在MQL代码的开头描述任何函数,也可以在结尾描述。 编译时仍然会根据编译器制造商的逻辑来构建,只有开发者知道他在那里构建了什么,以什么顺序。

网络上有很多关于编译器的文章,它们如何建立链接表,以及它们如何链接...

这是一个编译器,不是一个解释器,对吗?- 在解释器中,它就像自上而下地执行命令或由机器读取源代码一样


PS:你可以检查编译器是否包含了字节码中的所有内容,写一段测试代码,编译它,看看.ex5的大小,然后在任何地方(顶部或底部)添加许多不同的函数,不要调用它们--ex5的大小应该不会改变,它们没有包含在ex5中。

 
Igor Makanu:

那么,你可以在MQL代码的开头和结尾描述任何函数。 编译时仍然会根据编译器的逻辑来构建,只有开发者知道他在那里构建了什么,以什么样的顺序。

网络上有很多关于编译器的文章,它们如何建立链接表,以及它们如何链接...

这是一个编译器,不是一个解释器,对吗?- 在解释器中,它就像自上而下地执行命令或由机器读取源代码一样


PS:你可以检查编译器是否包含了字节码中的所有内容,写一个测试代码,编译它,看看.ex5的大小,然后在任何地方(顶部或底部)添加许多不同的函数,不要调用它们--ex5的大小一定不会改变,它们没有包含在ex5中。

在每个错误中,都有一个关于行和列号的条目。所有的东西在编译器里是什么形式并不重要。它似乎一直在按指定的行号对错误进行排序。

 
fxsaber:

它似乎总是按行号对错误进行排序。

我从来没有注意过,我总是点击错误的地方,这似乎并不重要。

 
为什么在MQ推出新的测试版时,与MQ-Demo的连接却失去了?
 
fxsaber:
为什么在MQ推出新的测试版时,与MQ-Demo的连接却失去了?
但可以测试与服务器失去连接的情况。交易--其服务器端的分辨率--经常被关闭/开启,这也非常好。对测试也有好处。我还希望一些账户参数可以来回改变--这对测试来说是很好的。例如,杠杆率、追加保证金和止损水平等等。
 
Artyom Trishkin:
但你可以测试一下与服务器的连接是否丢失。这也非常好,交易--其服务器端的分辨率--经常被关闭/打开。也适用于测试。我还希望一些账户参数可以来回改变--这对测试来说是很好的。例如,杠杆率、保证金追加和止损水平等。

你能想象那些不需要测试的人的鼻涕会有多少吗?他们不会理解的。

 
Artyom Trishkin:
但你可以测试与服务器的通信是否丢失。这也非常好,交易--其服务器端的分辨率--经常是关闭/开启。也适用于测试。我还希望一些账户参数可以来回改变--这对测试来说是很好的。例如,杠杆率、追加保证金和止损水平等等。

这一切都可以通过自定义测试器完成。