错误、漏洞、问题 - 页 1331 1...132413251326132713281329133013311332133313341335133613371338...3184 新评论 A100 2015.07.23 17:05 #13301 像这样--确实会有一个模糊不清的问题void f( uint ) { Print( __FUNCSIG__ ); } void f( int ) { Print( __FUNCSIG__ ); } void OnStart() { char ch = 0; f( ch ); // неопределенность } 如果你以不同的方式重写这个例子,编译器会很奇怪地克服这个问题#import "Test.ex5" void f( uint ); #import void f( int ) { Print( __FUNCSIG__ ); } void OnStart() { char ch = 0; f( ch ); // вызывается f(int), а должна генерироваться неопределенность } TheXpert 2015.07.23 19:44 #13302 你的真相 Alexey Navoykov 2015.07.23 20:26 #13303 我不知道这一点以前是否被提及过。在MetaEditor中,如果输入变量的名称与局部变量 的名称(或类字段的名称)重合,后者就会像输入变量一样,到处以红色高亮显示。 这在阅读代码时造成混乱。 我们应该解决这个问题。 [删除] 2015.07.24 01:28 #13304 Alexey Navoykov: 我不知道这句话以前是否有人说过。在MetaEditor中,如果输入变量的名称与局部变量 的名称(或类字段的名称)重合,那么后者和输入变量一样,都会被标记为红色。 这在阅读代码时造成混乱。 我们应该解决这个问题。给代码实体起相同的名字是一种自取灭亡的尝试 :)改变输入变量的名称比较容易,你不会有任何问题和困惑...... Maxim Khrolenko 2015.07.24 08:17 #13305 MT4/845,Windows7/64位。关于使用文本到新行 的问题。我做了一个脚本。#property strict string t1="Text_1"; string t2="Text_2"; void OnStart() { Print(t1+"\n "+t2); Print("Text_3"+"\n Text_4"); }结果。希望Text_2和Text_4的值能在其他行。请告知有什么问题。 Alexey Navoykov 2015.07.24 08:52 #13306 Konstantin Karpov:给代码实体起相同的名字是一种自取灭亡的尝试 :)改变输入变量的名称比较容易,你不会有任何问题或混淆...... 你的建议在实践中毫无意义。 没有人故意 给出相同的名字。 本地函数代码过着自己独立的生活,而外部程序则过着自己的生活。 而且外部变量的名字可能随着时间的推移而改变,也可能增加新的外部变量。如果在那之后,数百个函数中突然有一个有相同名字的局部变量,你认为我们应该给全局变量 重新命名? 你不应该为开发者的错误寻找借口。 Maxim Khrolenko 2015.07.24 10:53 #13307 MT4/845,Windows7/64位。脚本。#property strict double d1 = 2.009745110811111111111111111; double d2 = 3.654; double d3; //--- void OnStart() { d3=d1/d2; Print("A: d3 = ",DoubleToString(d3)); Print("B: d3 = ",DoubleToStr(d3)); Print("C: d3 = ",DoubleToString(d3,16)); Print("D: d3 = ",DoubleToString(d3,8)); Print("E: d3 = ",DoubleToString(NormalizeDouble(d3,8))); Print("F: d3 = ",DoubleToString(NormalizeDouble(d3,7))); Print("G: d3 = ",DoubleToString(NormalizeDouble(d3,8),7)); Print("H: d3 = ",DoubleToString(NormalizeDouble(d3,8),8)); } //+------------------------------------------------------------------+ 结果。有没有人知道如何打印数字0.55001234? [删除] 2015.07.24 10:57 #13308 Maxim Khrolenko:MT4/845,Windows7/64位。脚本。结果。有没有人知道如何打印数字0.55001234? Print("C: d3 = ",DoubleToString(d3,8)); A100 2015.07.24 11:06 #13309 Maxim Khrolenko:MT4/845,Windows7/64位。关于使用文本到新行 的问题。做了一个脚本。 显然在MT4中出现了错误(在MT5中一切正常)。 Maxim Khrolenko 2015.07.24 11:08 #13310 A100: 显然是MT4的一个错误(MT5没有问题)。 我明白了,希望开发商能注意到这一点。 1...132413251326132713281329133013311332133313341335133613371338...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
像这样--确实会有一个模糊不清的问题
如果你以不同的方式重写这个例子,编译器会很奇怪地克服这个问题
我不知道这句话以前是否有人说过。在MetaEditor中,如果输入变量的名称与局部变量 的名称(或类字段的名称)重合,那么后者和输入变量一样,都会被标记为红色。 这在阅读代码时造成混乱。 我们应该解决这个问题。
给代码实体起相同的名字是一种自取灭亡的尝试 :)
改变输入变量的名称比较容易,你不会有任何问题和困惑......
MT4/845,Windows7/64位。关于使用文本到新行 的问题。我做了一个脚本。
结果。
希望Text_2和Text_4的值能在其他行。请告知有什么问题。
给代码实体起相同的名字是一种自取灭亡的尝试 :)
改变输入变量的名称比较容易,你不会有任何问题或混淆......
MT4/845,Windows7/64位。脚本。
结果。
有没有人知道如何打印数字0.55001234?
MT4/845,Windows7/64位。脚本。
结果。
有没有人知道如何打印数字0.55001234?
MT4/845,Windows7/64位。关于使用文本到新行 的问题。做了一个脚本。
显然是MT4的一个错误(MT5没有问题)。