错误、漏洞、问题 - 页 167 1...160161162163164165166167168169170171172173174...3184 新评论 Konstantin Chernov 2010.10.16 16:43 #1661 关于动态数组 的问题 double open_main_array[] - 类变量 初始化 ArraySetAsSeries(open_main_array,true)。 该函数的第1次调用,包含以下代码 CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array); 第二次调用该函数 CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array); open_main_array数组是否包含第二次调用时复制的数据,或者数组将被递增并包含第一次和第二次调用的数据? 或者,你可以使用。 ArrayFree(open_main_array) CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array); Документация по MQL5: Основы языка / Типы данных / Объект динамического массива www.mql5.com Основы языка / Типы данных / Объект динамического массива - Документация по MQL5 Yedelkin 2010.10.16 17:45 #1662 Renat: 未初始化的变量 - 意味着该变量在未初始化时保证 有一个传递分支。例如,default在switch中被显式省略,其中MainPrice应该被显式初始化(或者在声明时显式归零)。 关于 "保证通过"。这里有这样一段代码。 (1) double local_low; (2) uint index_interior=i-k; (3) bool interrupcion=false; (4) for(uint n=1;n<Ac-k;n++) (5) { (6) if(low[index_interior-n]<low[index_interior-n-1]) (7) { (8) local_low=low[index_interior-n]; (9) interrupcion=true; (10) break; (11) } (12) } (13) if(interrupcion) (14) { (15) if(EspacioFalladoPlus0<high[index_interior]-local_low) ... 对于最后一行(第15行),它说 "可能使用了未初始化的变量'local_low'"。 但是由于在第8行初始化变量 local_low之后,在第9行使用了bool-variable interrupcion,结果发现在第15行变量local_low将被保证 初始化。所以在这一点上,警告 "可能使用未初始化的变量'local_low'"并不意味着 "保证",而只是可能 存在变量未被初始化的传递分支。 Renat Fatkhullin 2010.10.16 17:53 #1663 Yedelkin: 关于 "保证通过"。这里有一段代码。对于最后一行(第15行),它说 "可能使用了未初始化的变量'local_low'"。 但是由于在第8行初始化变量local_low之后,在第9行使用了bool-variable interrupcion,结果发现在第15行变量local_low将被保证 初始化。所以在这个时候,"可能使用了未初始化的变量'local_low'"的警告并不意味着 "保证",而只是可能 存在一个变量未初始化的直通分支。这是完全正确的,它给你一个警告。不要把你的自满情绪 与现实混淆起来。现实是在许多项目 之后被揭示的,理解 "这不可能,因为逻辑会导致某某 "的情况每天都在发生。 Yedelkin 2010.10.16 18:32 #1664 Renat: 不要把你的自信心 与现实混淆。现实是在许多项目之后被揭示的,"这不可能,因为逻辑导致了某某 "的意识每天都在发生。 你能得到一个充分的解释吗?代码给出了,"自以为是 "的说法也说了,错误在哪里呢?我不理解神秘主义。 ...如果你考虑"可能 使用未初始化的变量 "这句话的翻译,警告确实是 "绝对正确 "发出的。但这并不是说 "保证",而只是说可能 存在一个变量未被初始化的传递分支。这正是我所 "自信 "的话题。 Valerii Mazurenko 2010.10.16 18:49 #1665 Yedelkin: 我们能得到一个充分的解释吗?代码给出了,"自以为是 "的说法也说了,错误在哪里呢?我不理解神秘主义。如果不采用 interrupcion=true;而不是(例如)...interrupcion = (someFunction1(input) > someFunction2(input2)) && (someFunction3() < 1) || (someFunction1(input3) * someFunction3() > 10); 你也会提出索赔吗?特别是当someFunctionN由数百行代码组成时? 根据你的这段代码,是的,如果第15行被执行,变量被初始化。但在我给出的例子中,你会告诉编译器做什么?这个任务很艰巨。而且也没有必要在解决这个问题。 这个错误被称为"可能 (也许) 使用了未初始化的变量"(尽管你反正知道它)。你最好明确地给变量local_low分配一些值。相信我,它可以使你免于将来可能出现的错误(代码被纠正,一些东西被删除,一些东西被移动,一些东西被改变,第13行可能从这个过程中掉出来) Renat Fatkhullin 2010.10.16 18:50 #1666 Yedelkin: 我们能得到一个充分的解释吗?代码给出了,"自以为是 "的说法也说了,错误在哪里呢?我不理解神秘主义。在现实世界中,当任何语言的绝大多数程序员都在编写完全不受保护的、有缺陷的代码时,编译器应该尽可能地严格执行。程序员的自满 "逻辑很清楚,应该没有问题,所有的东西都被初始化了 "带来了,并且仍然带来了,并且将带来大量的错误。这就是为什么关于批评严格措施的问题在这里是不相关的。 Yedelkin 2010.10.16 18:55 #1667 Renat: ......程序员 "逻辑清晰,应该没有问题,一切都被正确初始化 "的自信心已经带来、带来并将带来大量的错误。 这就是为什么对严格措施的批评 在这里无关紧要。 让我们不要批评。特别是我没有把它放在我的文字中。关于我的批评的存在,你是大错特错了。 那么,你的错误是什么?既然你不能把深奥的东西写进密码,请用逻辑的语言回答我。也就是说,用任何程序员都能理解的语言。 Yedelkin 2010.10.16 19:02 #1668 notused: 你也会提出索赔 吗?特别是当someFunctionN由数百行代码组成时? 你也在同一个地方。嗯,我没有任何抱怨。我只想说清楚,一切并不像雷纳特说的那样绝对化。 那么代码呢。我给了你一个具体的代码样本,用普通的逻辑来反驳Renat的声明的分类性。谢谢你的建议,我一直在努力改进。 Dimitar Manov 2010.10.16 19:06 #1669 Yedelkin: 让我们免于批评。特别是我没有把它放在我的文字中。至于说我存在批评,你就大错特错了。 那么,你的错误是什么?既然你不能把深奥的东西写进密码,请用逻辑的语言回答我。也就是说,用任何程序员都能理解的语言。你有"可能使用了未初始化的变量'local_low'"。而你会得到什么,如果(1) double local_low=1.1; // или что-то другое Renat Fatkhullin 2010.10.16 19:07 #1670 Yedelkin: 那么,什么是错误呢?既然你不能把深奥的东西放进代码里,请用逻辑的语言回答。也就是说,用任何程序员都能理解的语言。从一个已经将许多软件项目 推向市场的软件公司经理的角度重新阅读我的答案。否则,停留在 "任何程序员 "的水平上,你将不明白错误是什么。 1...160161162163164165166167168169170171172173174...3184 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
关于动态数组 的问题
double open_main_array[] - 类变量
初始化
ArraySetAsSeries(open_main_array,true)。
该函数的第1次调用,包含以下代码
CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array);
第二次调用该函数
CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array);
open_main_array数组是否包含第二次调用时复制的数据,或者数组将被递增并包含第一次和第二次调用的数据?
或者,你可以使用。
ArrayFree(open_main_array)
CopyOpen(Symbol(), PERIOD_M15, 0, Count, open_main_array);
未初始化的变量 - 意味着该变量在未初始化时保证 有一个传递分支。例如,default在switch中被显式省略,其中MainPrice应该被显式初始化(或者在声明时显式归零)。
关于 "保证通过"。这里有这样一段代码。
对于最后一行(第15行),它说 "可能使用了未初始化的变量'local_low'"。
但是由于在第8行初始化变量 local_low之后,在第9行使用了bool-variable interrupcion,结果发现在第15行变量local_low将被保证 初始化。所以在这一点上,警告 "可能使用未初始化的变量'local_low'"并不意味着 "保证",而只是可能 存在变量未被初始化的传递分支。
关于 "保证通过"。这里有一段代码。
对于最后一行(第15行),它说 "可能使用了未初始化的变量'local_low'"。
但是由于在第8行初始化变量local_low之后,在第9行使用了bool-variable interrupcion,结果发现在第15行变量local_low将被保证 初始化。所以在这个时候,"可能使用了未初始化的变量'local_low'"的警告并不意味着 "保证",而只是可能 存在一个变量未初始化的直通分支。
这是完全正确的,它给你一个警告。
不要把你的自满情绪 与现实混淆起来。现实是在许多项目 之后被揭示的,理解 "这不可能,因为逻辑会导致某某 "的情况每天都在发生。
不要把你的自信心 与现实混淆。现实是在许多项目之后被揭示的,"这不可能,因为逻辑导致了某某 "的意识每天都在发生。
你能得到一个充分的解释吗?代码给出了,"自以为是 "的说法也说了,错误在哪里呢?我不理解神秘主义。
...如果你考虑"可能 使用未初始化的变量 "这句话的翻译,警告确实是 "绝对正确 "发出的。但这并不是说 "保证",而只是说可能 存在一个变量未被初始化的传递分支。这正是我所 "自信 "的话题。
我们能得到一个充分的解释吗?代码给出了,"自以为是 "的说法也说了,错误在哪里呢?我不理解神秘主义。
如果不采用
而不是(例如)...
你也会提出索赔吗?特别是当someFunctionN由数百行代码组成时?根据你的这段代码,是的,如果第15行被执行,变量被初始化。但在我给出的例子中,你会告诉编译器做什么?这个任务很艰巨。而且也没有必要在解决这个问题。
这个错误被称为"可能 (也许) 使用了未初始化的变量"(尽管你反正知道它)。
你最好明确地给变量local_low分配一些值。相信我,它可以使你免于将来可能出现的错误(代码被纠正,一些东西被删除,一些东西被移动,一些东西被改变,第13行可能从这个过程中掉出来)
我们能得到一个充分的解释吗?代码给出了,"自以为是 "的说法也说了,错误在哪里呢?我不理解神秘主义。
在现实世界中,当任何语言的绝大多数程序员都在编写完全不受保护的、有缺陷的代码时,编译器应该尽可能地严格执行。程序员的自满 "逻辑很清楚,应该没有问题,所有的东西都被初始化了 "带来了,并且仍然带来了,并且将带来大量的错误。
这就是为什么关于批评严格措施的问题在这里是不相关的。
......程序员 "逻辑清晰,应该没有问题,一切都被正确初始化 "的自信心已经带来、带来并将带来大量的错误。
这就是为什么对严格措施的批评 在这里无关紧要。
让我们不要批评。特别是我没有把它放在我的文字中。关于我的批评的存在,你是大错特错了。
那么,你的错误是什么?既然你不能把深奥的东西写进密码,请用逻辑的语言回答我。也就是说,用任何程序员都能理解的语言。
你也会提出索赔 吗?特别是当someFunctionN由数百行代码组成时?
你也在同一个地方。嗯,我没有任何抱怨。我只想说清楚,一切并不像雷纳特说的那样绝对化。
那么代码呢。我给了你一个具体的代码样本,用普通的逻辑来反驳Renat的声明的分类性。谢谢你的建议,我一直在努力改进。
让我们免于批评。特别是我没有把它放在我的文字中。至于说我存在批评,你就大错特错了。
那么,你的错误是什么?既然你不能把深奥的东西写进密码,请用逻辑的语言回答我。也就是说,用任何程序员都能理解的语言。
你有"可能使用了未初始化的变量'local_low'"。
而你会得到什么,如果
那么,什么是错误呢?既然你不能把深奥的东西放进代码里,请用逻辑的语言回答。也就是说,用任何程序员都能理解的语言。
从一个已经将许多软件项目 推向市场的软件公司经理的角度重新阅读我的答案。
否则,停留在 "任何程序员 "的水平上,你将不明白错误是什么。