错误、漏洞、问题 - 页 2529

 
A100:

关于标识符中可允许的字符的问题。例子

其结果是。

收到了一个 带有空格的变量标识符

如果我们把这个例子改写成这样。

那么我们可以提出一个矛盾:(1)和(2)之间有什么区别?

那么从C/C++的角度来看,μl中存在一个错误。在运算符##之前/之后可以插入任意数量的空格/注释,令牌将首先被分割,然后预处理器开始,即它甚至不会看到这些空格,标准hash_hash有一个例子。

#define  hash_hash # ## #
#define  mkstr(a) #  a
#define  in_between(a) mkstr(a)
#define  join(c, d) in_between(c hash_hash d)
char p[] = join(x, y);    // equivalent tochar p[] = "x ## y";
#define  MACRO( x )              x##:AAA

只有共同构成有效标记的标记才能被使用。

ZS:有人说c/s++不是他们的权威,为什么老是提到他们,反正是mcl,不是......,也许他们有合适的解释?

 
Vict:

也许他们有正确的解释?

通常他们有一个解释:它是由明智的开发者设计的 )
 
当处理大的源文件时,ME非常迟钝--两个30兆字节的文件,即使从一个切换到另一个也会导致迟钝,特别是当从一个文件复制大量代码到另一个时。一般来说,编辑这类文件会使你在慢动作中工作--令人厌烦。
 
Aleksey Vyazmikin:
当处理大的源文件时,ME变得非常迟钝--两个30MB的文件,甚至从一个文件切换到另一个文件都会导致迟钝,特别是当从一个文件复制大量代码到另一个。而且一般来说,编辑这种文件会导致在慢动作中工作--令人厌烦。

30MB的文本显然不是工作所需。给自己找一次麻烦,然后把这些数据放进一个文件夹。

 
Andrey Khatimlianskii:

30MB的文本显然不是工作所需。拷问一次,然后把数据放进includi。

这些数据是单一类型的,需要不断编辑;它构成了EA修改的基础。

 
与本主题无关的评论已被移至"OOP,模板和mql5中的宏, 交易的技巧和窍门"。
 
Aleksey Vyazmikin:
当处理大的源文件时,ME经常挂起--两个30MB的文件,甚至从一个文件切换到另一个文件都会导致挂起,特别是当把大量的代码从一个复制到另一个时。而且一般来说,编辑这类文件会导致在慢动作中工作--令人厌烦。

我认为所有的文本编辑器都会有这样的表现

你需要把这么庞大的源代码拆开,或者在一个库中重写一部分。

 

请帮助完成一项小任务。我需要一个调用LABEL的脚本,它将在一定的时间间隔内闪烁,仅此而已。闪烁的频率和指定的坐标我将自己做,对我来说主要是功能本身。

我找到一个例子,根据我的需要重写了它,但它就是不工作。它随心所欲地眨眼,然后每秒钟一次,然后消失几秒钟。而且我希望脚本一直执行到你停止,而不是一定的次数。

for(int i=0; i<50; i++)
   {
      if(!ObjectCreate(0,"Blink",OBJ_LABEL,0,0,0))
   {
      Print("Not Create! Error - ",GetLastError());
   }
   ObjectSetInteger(0,"Blink",OBJPROP_XDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_YDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSetString(0,"Blink",OBJPROP_TEXT,"Test");
   ObjectSetString(0,"Blink",OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,"Blink",OBJPROP_FONTSIZE,18);
   ObjectSetDouble(0,"Blink",OBJPROP_ANGLE,0);
   ObjectSetInteger(0,"Blink",OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Red);
   ObjectSetInteger(0,"Blink",OBJPROP_BACK,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTED,false);
   ObjectSetInteger(0,"Blink",OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,"Blink",OBJPROP_ZORDER,0);
   
   Sleep(200);
   
   ObjectDelete(0,"Blink");
   
   Sleep(200);
   }
 

不太可能被纠正,但一般来说是个错误。

#define  A world
#define  MAKESTR(L) #L

void OnStart() {
   Alert( MAKESTR(A) );
}

警报: 世界

预期:警报:A

 
Igor Makanu:

我认为所有的文本编辑器都会有这样的表现

同样,你需要尝试将如此庞大的源代码分成若干部分,或者重写库中的部分代码

EditPad Lite在处理千亿国际登录_千亿pt老虎机_千亿国际娱乐pt_千亿国际娱乐文件、复制和编辑方面的工作非常出色--我非常喜欢这个工具。这意味着它是现实的。我理解当你打开它时的初始负载,或者如果你长时间不使用标签工作,但现在甚至编辑一个文件都非常困难。

原因: