错误、漏洞、问题 - 页 2761 1...275427552756275727582759276027612762276327642765276627672768...3184 新评论 Igor Makanu 2020.05.31 10:17 #27601 Aleksey Mavrin: 0xFF可能被编译器变成了4个字节。 没有,但它的初始化是正确的 uchar uc[16]; ArrayInitialize(uc,(uchar)0xFF); // truncation of constant value ArrayPrint(uc); // 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 Ivan Syzrantsev 2020.05.31 12:16 #27602 下午好,请告知如何解决这个问题。 在优化过程中,弹出了一个错误。 2020.05.31 15:05:32.738 Core 7 genetic pass (0, 53) tested with error "critical runtime error 503 in OnTickfunction(zero divide, module Experts\e1.ex5, file e1.mq5, line 826, col 73) " in 0:00:00.153 double Mix1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1]), 2) double Mix2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2)。 double Mix = NormalizeDouble((Mix1/Mix2),2)。 我做了什么。 1)我将Mix1和Mix2相乘,以减少小数点后的数字。 2)改变了归一化中的数字数量。 3) 检查了所有的ZExtLevels,确保它们不包含0。 Errors, bugs, questions Runtime error 优化一个EA,获得优化后的最佳效果。 Aleksey Mavrin 2020.05.31 12:21 #27603 Igor Makanu: 没有,但它初始化正确 为什么你确定它没有?默认情况下,在Integer中,它呈现的是。sizeof这样说。 Vladimir Simakov 2020.05.31 12:26 #27604 Aleksey Mavrin: 为什么你确定它没有?整数中的默认值是呈现。sizeof说它是。 准确地说,是uint。 Igor Makanu 2020.05.31 12:30 #27605 Aleksey Mavrin:为什么你确定它没有?整数中的默认值是呈现。sizeof这样说。 它是否也能在没有任何警告的情况下工作? char c[16]; ArrayInitialize(c, 127); 因为有一个相应的签名ArrayInitialize int ArrayInitialize( char array[], // инициализируемый массив char value // значение, которое будет установлено ); 而且由于某些未知的原因,他们没有为无符号的Uchar创建ArrayInitialize()。 Aleksey Mavrin 2020.05.31 12:36 #27606 Igor Makanu:工作方式一样,没有任何警告?因为有一个相应的签名ArrayInitialize而对于无符号的Uchar,他们没有做ArrayInitialize(),原因不明。 这不是关于签名或没有签名的问题。问题是,4个字节被转换为1,理论上会丢失信息--这就是编译器警告的内容。 尝试ArrayInitialize(c, (char)10000)。 还会有一个警告 Igor Makanu 2020.05.31 13:02 #27607 Aleksey Mavrin: 这不是关于签名或没有签名的问题。问题是,4个字节被转换为1,理论上会丢失信息,这就是编译器警告的内容。 尝试ArrayInitialize(c, (char)10000)。 还会有一个警告 嗯,从一开始就很清楚 问题在这里以不同的方式出现了--你在哪里真正需要图表? 我在StringToCharArray()和CryptEncode()中使用了Uchar,如果你翻看帮助,你会发现更多的内容 这就是为什么我可以用ArrayInitialize 来初始化一个char数组,但Uchar我却做不到。 好吧,这是一个伟大的喧嚣,我怀疑它将改变;) PS: 0xFF = 255 (1个字节) Alain Verleyen 2020.05.31 13:09 #27608 Igor Makanu: 是的,很明显,这一切都是从头开始的。 这里的问题是不同的,这就是真正需要慈善的地方? 我在StringToCharArray()和CryptEncode()中使用了Uchar,如果你浏览一下帮助,仍然有 所以这就是为什么我可以用ArrayInitialize 来初始化char数组,而ugar却不能。 好了,高贵的霍利瓦尔变成了,我怀疑有些东西会改变;) PS: 0xFF = 255 (1个字节) ArrayInitialize (uc,(char) 0xFF ); // truncation of constant value Aleksey Mavrin 2020.05.31 13:10 #27609 Igor Makanu: 是的,这就是它从一开始的目的。 这里还有一个问题,你真正需要的是哪里的炭? 我在StringToCharArray()和CryptEncode()中使用Uchar。 这就是为什么我可以用ArrayInitialize 来初始化一个char数组,但Uchar我 却做不到。 好吧,这是一个伟大的喧嚣,我怀疑它将改变;) PS: 0xFF = 255 (1个字节) 我不知道为什么你不能这样做。Uchar的工作方式与char相同。 你问为什么你得到了警告,因为1中有4个字节。 255并不重要,0和1可以是1和2,4和8个字节) Igor Makanu 2020.05.31 13:27 #27610 Alain Verleyen: ArrayInitialize (uc,(char) 0xFF ); 检查了。 uchar uc[16]; ArrayInitialize (uc, (char) 0xFF ); ArrayPrint(uc); 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 好了,在没有任何编译器警告 的情况下工作 谢谢你 1...275427552756275727582759276027612762276327642765276627672768...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
0xFF可能被编译器变成了4个字节。
没有,但它的初始化是正确的
下午好,请告知如何解决这个问题。
在优化过程中,弹出了一个错误。
2020.05.31 15:05:32.738 Core 7 genetic pass (0, 53) tested with error "critical runtime error 503 in OnTickfunction(zero divide, module Experts\e1.ex5, file e1.mq5, line 826, col 73) " in 0:00:00.153
double Mix1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1]), 2)
double Mix2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2)。
double Mix = NormalizeDouble((Mix1/Mix2),2)。
我做了什么。
1)我将Mix1和Mix2相乘,以减少小数点后的数字。
2)改变了归一化中的数字数量。
3) 检查了所有的ZExtLevels,确保它们不包含0。
没有,但它初始化正确
为什么你确定它没有?默认情况下,在Integer中,它呈现的是。sizeof这样说。
为什么你确定它没有?整数中的默认值是呈现。sizeof说它是。
准确地说,是uint。
为什么你确定它没有?整数中的默认值是呈现。sizeof这样说。
它是否也能在没有任何警告的情况下工作?
因为有一个相应的签名ArrayInitialize
而且由于某些未知的原因,他们没有为无符号的Uchar创建ArrayInitialize()。
工作方式一样,没有任何警告?
因为有一个相应的签名ArrayInitialize
而对于无符号的Uchar,他们没有做ArrayInitialize(),原因不明。
这不是关于签名或没有签名的问题。问题是,4个字节被转换为1,理论上会丢失信息--这就是编译器警告的内容。
尝试ArrayInitialize(c, (char)10000)。
还会有一个警告
这不是关于签名或没有签名的问题。问题是,4个字节被转换为1,理论上会丢失信息,这就是编译器警告的内容。
尝试ArrayInitialize(c, (char)10000)。
还会有一个警告
嗯,从一开始就很清楚
问题在这里以不同的方式出现了--你在哪里真正需要图表?
我在StringToCharArray()和CryptEncode()中使用了Uchar,如果你翻看帮助,你会发现更多的内容
这就是为什么我可以用ArrayInitialize 来初始化一个char数组,但Uchar我却做不到。
好吧,这是一个伟大的喧嚣,我怀疑它将改变;)
PS: 0xFF = 255 (1个字节)
是的,很明显,这一切都是从头开始的。
这里的问题是不同的,这就是真正需要慈善的地方?
我在StringToCharArray()和CryptEncode()中使用了Uchar,如果你浏览一下帮助,仍然有
所以这就是为什么我可以用ArrayInitialize 来初始化char数组,而ugar却不能。
好了,高贵的霍利瓦尔变成了,我怀疑有些东西会改变;)
PS: 0xFF = 255 (1个字节)
是的,这就是它从一开始的目的。
这里还有一个问题,你真正需要的是哪里的炭?
我在StringToCharArray()和CryptEncode()中使用Uchar。
这就是为什么我可以用ArrayInitialize 来初始化一个char数组,但Uchar我 却做不到。
好吧,这是一个伟大的喧嚣,我怀疑它将改变;)
PS: 0xFF = 255 (1个字节)
我不知道为什么你不能这样做。Uchar的工作方式与char相同。
你问为什么你得到了警告,因为1中有4个字节。 255并不重要,0和1可以是1和2,4和8个字节)
Alain Verleyen:
检查了。
好了,在没有任何编译器警告 的情况下工作
谢谢你