错误、漏洞、问题 - 页 1331

 

像这样--确实会有一个模糊不清的问题

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), а должна генерироваться неопределенность
}
 
你的真相
 
我不知道这一点以前是否被提及过。在MetaEditor中,如果输入变量的名称与局部变量 的名称(或类字段的名称)重合,后者就会像输入变量一样,到处以红色高亮显示。 这在阅读代码时造成混乱。 我们应该解决这个问题。
 
Alexey Navoykov:
我不知道这句话以前是否有人说过。在MetaEditor中,如果输入变量的名称与局部变量 的名称(或类字段的名称)重合,那么后者和输入变量一样,都会被标记为红色。 这在阅读代码时造成混乱。 我们应该解决这个问题。

给代码实体起相同的名字是一种自取灭亡的尝试 :)

改变输入变量的名称比较容易,你不会有任何问题和困惑......

 

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的值能在其他行。请告知有什么问题。

 
Konstantin Karpov:

给代码实体起相同的名字是一种自取灭亡的尝试 :)

改变输入变量的名称比较容易,你不会有任何问题或混淆......

你的建议在实践中毫无意义。 没有人故意 给出相同的名字。 本地函数代码过着自己独立的生活,而外部程序则过着自己的生活。 而且外部变量的名字可能随着时间的推移而改变,也可能增加新的外部变量。如果在那之后,数百个函数中突然有一个有相同名字的局部变量,你认为我们应该给全局变量 重新命名? 你不应该为开发者的错误寻找借口。
 

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?

 
Maxim Khrolenko:

MT4/845,Windows7/64位。脚本。

结果。


有没有人知道如何打印数字0.55001234?

 Print("C: d3 = ",DoubleToString(d3,8));

 
Maxim Khrolenko:

MT4/845,Windows7/64位。关于使用文本到新行 的问题。做了一个脚本。

显然在MT4中出现了错误(在MT5中一切正常)。
 
A100:
显然是MT4的一个错误(MT5没有问题)。
我明白了,希望开发商能注意到这一点。