if(FileReadStruct(handle,temp_rate)!=60)
{
IsError=true;
Print(__FUNCSIG__," Не удалось прочитать данные из файла по причине ошибки ",GetLastError());
return;
}
#define CHECK_READ(dHndl,dRate,dRet) do \
if(FileReadStruct(dHndl,dRate)!=60){ \
IsError=true; \
Print(__FUNCSIG__," Не удалось прочитать данные из файла по причине ошибки ",GetLastError()); \
return dRet;} while(false)
...
CHECK_READ(handle,temp_rate,);
...
CHECK_READ(handle,temp_rate,0);
...
Vladimir Simakov: if (condition) CHECK_READ(h,r,0); else CHECK_READ(h,r,1);
部署没有do-while包装器的宏,看看会发生什么))
if (condition) if(FileReadStruct(h,r)!=60){
IsError=true;
Print(__FUNCSIG__," Не удалось прочитать данные из файла по причине ошибки ",GetLastError());
return 0;}; else if(FileReadStruct(dHndl,dRate)!=60){
IsError=true;
Print(__FUNCSIG__," Не удалось прочитать данные из файла по причине ошибки ",GetLastError());
return dRet;};
if (condition)
if(FileReadStruct(h,r)!=60)
{
IsError=true;
Print(__FUNCSIG__," Не удалось прочитать данные из файла по причине ошибки ",GetLastError());
return 0;
};
else
if(FileReadStruct(dHndl,dRate)!=60)
{
IsError=true;
Print(__FUNCSIG__," Не удалось прочитать данные из файла по причине ошибки ",GetLastError());
return dRet;
};
我放在这里的代码,我已经删除了,我没有立即注意到这里讨论的是mt4
MQL4
MQL4
我建议你--有很多好东西可以找https://www.mql5.com/ru/forum/131859/page6#comment_3359705
一个更具体、也许更有趣的问题。
我在不同的功能中使用相同的结构
然而,有些函数是无效类型 的,有些则返回一个值,所以我从这些函数中返回零。
我可以做一个神奇的宏,在每一种情况下为我替换出正确的一个吗?
一个更具体、也许更有趣的问题。
我在不同的功能中使用相同的结构
然而,有些函数是无效类型 的,有些则返回一个值,所以我从这些函数中返回零。
我可以制作这样一个神奇的宏,在每一种情况下都能为我替代必要的变体吗?
在宏中使用return是一把指向自己腿部的扣动的枪,当与if结合时--它变成了一门大炮)))但如果你真的想。
我没有测试过,但它应该可以工作。还把枪变回了手枪)))。
谢谢你!
因此,我在最后一个参数中要么传入一个返回值,要么传入一个空白,这将变成
return ;
和一个空格意味着什么。当然,我怎么忘了它可以不使用我最喜欢的括号。
顺便问一下,你能告诉我为什么这个结构是在一个只能执行一次的循环里面吗?它是一门大炮变回了枪吗?可能的情况是无限递归或类似的情况?
谢谢你!
因此,我在最后一个参数中要么传入一个返回值,要么传入一个空白,这将变成
和一个空格意味着什么。当然,我怎么忘了它也可以不使用我最喜欢的括号。
另外,你能告诉我为什么这个结构被塞在一个只能执行一次的循环里吗?它是一把枪变回了一把枪吗?可能的情况是无限递归或类似的情况?
if (condition) CHECK_READ(h,r,0); else CHECK_READ(h,r,1);
如果我对替代原则理解正确的话,情况似乎就是这样。
大括号后有多余的分号。而且不清楚现在还指的是什么。
遗憾的是,显然没有简单的方法来自动进行宏观扩展,看看会发生什么。除非你能制作自己的脚本。
谢谢你!宏中的while后面没有分号是有原因的。