错误、漏洞、问题 - 页 2633

 

2310
奇怪的行为。
如果你设置了从第四个参数开始的数组,或者第五个、第六个,等等。

void Func(int arg1, int arg2, int arg3=0, double & array[])
{
 
}

编译器会产生一个错误

'array' - missing default value for parameter

我用第一个、或第二个、或第三个参数重新排列数组,没有错误。

void Func(int arg1, int arg2, double & array[] int arg3=0)
{
 
}


第二个奇怪的行为。
在F5上的编辑器中,编译后经常会触发脚本运行时间。

 
Roman:

2310
这是很奇怪的行为。
如果你设置了从第四个参数开始的数组,或者第五个、第六个,等等。

编译器会产生一个错误

我用第一个、或第二个、或第三个参数重新排列数组,没有错误。


第二个奇怪的行为。
在编辑器中通过F5,在编译后,经常会触发程序运行。

如果其中一个参数有一个默认值,那么所有后续的参数也应该有默认值。

void Func(int arg1, int arg2, int arg3=0, double & array[]  )
{
 
}

这是从一开始就有的行为。

而且,这不是关于数组的问题,而是关于最后一个参数的默认值。所有后来的人也必须有。

void Func(int arg1, int arg2, double & array[] int arg3=0)
{
 
}
 
Artyom Trishkin:

如果其中一个参数有一个默认值,那么所有后续的参数也应该有默认值。

这是从一开始就有的行为。

而且,这不是关于数组的问题,而是关于最后一个参数的默认值。所有后来的人也被要求拥有它。

谢谢你的澄清,但行为很奇怪 ))

 
Artyom Trishkin:

所以你的排名还不够好,不适合做博客。

我在哪里可以读到这些信息?你需要什么样的评级?你需要做什么?
 
Roman:

谢谢你的澄清,但行为很奇怪 ))

听到你问这样的问题,我很奇怪。该手册明确指出


Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Всякая задача может быть разбита на подзадачи, каждую из которых можно либо непосредственно представить в виде кода, либо разбить на еще более мелкие подзадачи. Данный метод называется определения функции. Заголовок функции включает в себя описание типа возвращаемого значения, имени (идентификатора) и формальных параметров.  Количество...
 
Petros Shatakhtsyan:

如果它在测试器上也能工作,那就好了。我会检查的。

不,不是这样的。

顺便说一下,服务器时间并没有在星期六停止。这里的情况正好相反:在终端,服务器时间随着新报价的到来而更新。 例如,你在市场概览中只有一个符号打开(不仅在测试器中,而且在现实中)。而且有五秒钟没有刻度 - 所有这些时间的服务器时间定时器将不会移动。这适用于星期六:服务器时间正在运行,但终端不知道它,因为没有刻度。

 
Petros Shatakhtsyan:

但在这里,我不知道如何确定它是否是星期六。毕竟,在市场关闭后,服务器时间被停止。

为了什么目的?要在周末运行自动优化?那么从OnTick设置一个 距离为几分钟的定时器 就可以了。如果它起作用,那么蜱虫已经停止,你可以进行优化。

如果是出于其他目的,则要制定。

 
Alexey Viktorov:

听到你问这样的问题,我很奇怪。该手册明确指出


谢谢阿列克谢,我还没有在指南中找过这个问题))。
因为我很少使用默认参数,但在这里我需要它们,所以我遇到了它们。
出于某种原因,一直以为参数没有优先排名,但它们有。

 

你能告诉我如何从传递的参数中设置矩阵的大小吗?
类似这样的事情

void MxResize(int row, int col)
{
   int A[][];      

   ArrayResizeRow(A, row);    
   ArrayResizeCol(A, col);      
}

下面的条目失败了,--无效的索引值

void MxResize(int row=1, int col=1)
{
   int A[row][col];    
      
}
 
Roman:

你能告诉我如何根据传递的参数来设置矩阵的大小吗?

https://www.mql5.com/ru/forum/328008/page2#comment_14166682

Размерность многомерных динамических массивов через ArrayResize
Размерность многомерных динамических массивов через ArrayResize
  • 2019.12.09
  • www.mql5.com
Добрый день. Такой вопрос волнует: как использовать ArrayResize для двумерных динамических массивов...