错误、漏洞、问题 - 页 2009 1...200220032004200520062007200820092010201120122013201420152016...3184 新评论 Alexey Viktorov 2017.09.21 05:55 #20081 fxsaber: 为什么完全没有警告,说这个变量没有被使用?因为它已被初始化。 fxsaber 2017.09.21 06:11 #20082 Alexey Viktorov:因为它被初始化了。那么,这有什么区别呢?它是用一个常数初始化的。即使是这样的代码也应该产生警告void OnStart() { int Array[]; int i; i = Array[0]; i = Array[1]; i = Array[2]; }因为变量和数组的任何地方都没有涉及。 Alexey Viktorov 2017.09.21 06:34 #20083 fxsaber:那么,这有什么区别呢?它是用一个常数初始化的。即使是这样的代码也应该产生警告因为变量和数组没有参与任何地方。我认为这样的代码一定是根本无法编译的,因为没有定义数组的大小。但这只是一个挑剔的问题。那么,他们怎么不参加呢?一个变量被赋予一个数组单元值。这就是他们参加计算的情况。编译器怎么能知道你的未来计划?我认为按照你的想法去做可能是正确的,但非常困难。如果你试图提出这种检查的算法,你可以写如下:程序员检查一个变量是否被分配了一些值。如果没有,说明没有使用。试着给我们一个粗略的算法,以确定一个变量已被初始化,但在计算中没有用到其他地方。同名变量的数量...是值得怀疑的。 fxsaber 2017.09.21 06:51 #20084 Alexey Viktorov:编译员怎么会知道你的未来计划?编译器有时会抛出整块的内容,因为它知道 关于交易、自动交易系统和策略测试的论坛 标准功能/方法的其他实现方式 Renat Fatkhullin, 2016.09.01 23:50为了避免编译器因循环无用而将其扔掉,你必须使用计算结果。例如,使打印变量Price。 Alexey Viktorov 2017.09.21 06:59 #20085 fxsaber:编译器有时会扔掉整块的内容,因为它知道好吧,如果雷纳特还没有回答够的话,我们就等着他的回答吧。而且原则上我个人对一切都很满意。 fxsaber 2017.09.21 07:08 #20086 如果kodobase中的工作已经更新(作者调整了代码),请将相关的讨论主题标记为未读。 fxsaber 2017.09.21 07:32 #20087 我如何做一个#uninclude?// Test.mqh void Func() {};#include <Test.mqh> // Здесь видна Func(); #uninclude <Test.mqh> // Здесь не видна Func(); fxsaber 2017.09.21 08:43 #20088 纠正数值或单位2017.09.21 11:37:27.564 Tester EURUSD: preliminary downloading of history ticks started, it may take quite a long time 2017.09.21 11:37:32.564 Tester EURUSD: "bases\FIBOGroup-MT5 Server\ticks\EURUSD\201708.tkc" download (836044.77 Kb/sec) 2017.09.21 11:37:41.565 Tester EURUSD: 45% ticks downloaded (535.34 Kb/sec) 2017.09.21 11:37:49.565 Tester EURUSD: 53% ticks downloaded (518.17 Kb/sec) 2017.09.21 11:38:01.571 Tester EURUSD: 61% ticks downloaded (530.69 Kb/sec) 2017.09.21 11:38:12.571 Tester EURUSD: 70% ticks downloaded (547.64 Kb/sec) 2017.09.21 11:38:26.572 Tester EURUSD: 82% ticks downloaded (543.88 Kb/sec) 2017.09.21 11:38:38.573 Tester EURUSD: 94% ticks downloaded (552.07 Kb/sec) 2017.09.21 11:38:50.573 Tester EURUSD: preliminary downloading of history ticks completed, 44.41 Mb in 1:23.008 (547.80 Kb/sec) Stanislav Korotky 2017.09.21 11:08 #20089 fxsaber:你如何制作#uninclude?你不能直接这样做。代码重构(不同的文件结构或OOP)将有所帮助。 Andrey Dik 2017.09.21 17:36 #20090 在CopyTicks测试器中返回零,这是否正常? 1...200220032004200520062007200820092010201120122013201420152016...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为什么完全没有警告,说这个变量没有被使用?
因为它已被初始化。
因为它被初始化了。
那么,这有什么区别呢?它是用一个常数初始化的。即使是这样的代码也应该产生警告
因为变量和数组的任何地方都没有涉及。
那么,这有什么区别呢?它是用一个常数初始化的。即使是这样的代码也应该产生警告
因为变量和数组没有参与任何地方。
我认为这样的代码一定是根本无法编译的,因为没有定义数组的大小。但这只是一个挑剔的问题。
那么,他们怎么不参加呢?一个变量被赋予一个数组单元值。这就是他们参加计算的情况。编译器怎么能知道你的未来计划?我认为按照你的想法去做可能是正确的,但非常困难。如果你试图提出这种检查的算法,你可以写如下:程序员检查一个变量是否被分配了一些值。如果没有,说明没有使用。试着给我们一个粗略的算法,以确定一个变量已被初始化,但在计算中没有用到其他地方。
同名变量的数量...是值得怀疑的。
编译员怎么会知道你的未来计划?
编译器有时会抛出整块的内容,因为它知道
关于交易、自动交易系统和策略测试的论坛
标准功能/方法的其他实现方式
Renat Fatkhullin, 2016.09.01 23:50
为了避免编译器因循环无用而将其扔掉,你必须使用计算结果。例如,使打印变量Price。
编译器有时会扔掉整块的内容,因为它知道
好吧,如果雷纳特还没有回答够的话,我们就等着他的回答吧。而且原则上我个人对一切都很满意。
我如何做一个#uninclude?
纠正数值或单位
你如何制作#uninclude?
你不能直接这样做。代码重构(不同的文件结构或OOP)将有所帮助。