程序库: Price_Compare - 页 4 1234 新评论 fxsaber 2018.10.01 08:19 #31 Koldun Zloy: 这么说吧。宏的作用到底是什么?void OnTick() // 框架。 { Print("Hello World!"); ::OnTick2(); } #define OnTick OnTick2 void OnTick() {} // Original. [删除] 2018.10.02 17:28 #32 这完全是在回避问题。在函数中插入必要的代码并不难。 你实际上是在向库用户隐瞒,函数中添加了一些代码。 如果你不得不在别人的程序中使用这种技巧,你一定会诅咒作者。 下面是一个在库中不正确使用宏的例子: #define CHECK_INIT_SYNC if (INIT_SYNC::Check()) return void OnTimer( void ) { CHECK_INIT_SYNC; ::OldOnTimer(); } 这个宏隐藏了这个地方可能有一个函数出口。你为什么需要它呢?就为了节省几分钱的字母?这并不严肃。 您可以使用宏来进行条件编译和类型声明(目前还没有普通的类型定义)。 有时你还必须使用宏来声明常量。 在所有其他情况下,宏只会混淆代码。 下面是一个生动的混乱例子:https://www.mql5.com/ru/forum/170952/page50#comment_5488178. Особенности языка mql5, тонкости и приёмы работы 2017.07.20www.mql5.com В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач... fxsaber 2018.10.02 17:53 #33 Koldun Zloy:这完全是在回避问题。在函数中插入必要的代码并不难。你实际上是在向库用户隐瞒函数中添加了一些代码。如果你不得不在别人的程序中处理这种技巧,你会诅咒作者。 问题在于这种解决方案的便利性和需求。在这种情况下,只需一行代码就可以赋予或删除指标的同步特性。也许是您觉得不方便。 这里有一个在您的程序库中不正确使用宏的例子: 这个宏在这里隐藏了函数的退出。你为什么需要它?就为了节省几分钱的字母?这可不严肃。 这样断章取义可不好。每个 On 函数中都会使用宏。 在条件编译和类型声明(目前还没有正常的类型定义)中允许使用宏。 有时也需要使用宏来声明常量。 在所有其他情况下,宏只会混淆代码。 下面就是一个生动的混乱例子:https://www.mql5.com/ru/forum/170952/page50#comment_5488178。 这个有什么问题? #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) 如果我们需要替换 OrdersTotal() 呢? [删除] 2018.10.02 18:07 #34 这样断章取义是不好的。每个 "On "函数中都会用到这个宏。 我见过所有的函数。它在所有这些函数中都没有任何作用。 这个宏有什么问题吗? #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)除了混淆视听,它什么也做不了。 如果我们需要替换OrdersTotal() 呢? 您不需要替换OrdersTotal()。 fxsaber 2018.10.02 18:23 #35 Koldun Zloy: 我都见过。在所有这些功能中,它都没有做任何有用的事情。除了混淆视听,它也一无是处。您不需要替换OrdersTotal()。我听到了。我不知道其他人使用发布的库有多方便,也不知道有多少人是他们的用户。 所以我不会替别人说话。也许,有一天我会对宏采取不同的态度。现在我不能同意你的观点。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这么说吧。宏的作用到底是什么?
这完全是在回避问题。在函数中插入必要的代码并不难。
你实际上是在向库用户隐瞒,函数中添加了一些代码。
如果你不得不在别人的程序中使用这种技巧,你一定会诅咒作者。
下面是一个在库中不正确使用宏的例子:
这个宏隐藏了这个地方可能有一个函数出口。
你为什么需要它呢?就为了节省几分钱的字母?这并不严肃。
您可以使用宏来进行条件编译和类型声明(目前还没有普通的类型定义)。
有时你还必须使用宏来声明常量。
在所有其他情况下,宏只会混淆代码。
下面是一个生动的混乱例子:https://www.mql5.com/ru/forum/170952/page50#comment_5488178.
这完全是在回避问题。在函数中插入必要的代码并不难。
你实际上是在向库用户隐瞒函数中添加了一些代码。
如果你不得不在别人的程序中处理这种技巧,你会诅咒作者。
问题在于这种解决方案的便利性和需求。在这种情况下,只需一行代码就可以赋予或删除指标的同步特性。也许是您觉得不方便。
这里有一个在您的程序库中不正确使用宏的例子:
这个宏在这里隐藏了函数的退出。
你为什么需要它?就为了节省几分钱的字母?这可不严肃。
这样断章取义可不好。每个 On 函数中都会使用宏。
在条件编译和类型声明(目前还没有正常的类型定义)中允许使用宏。
有时也需要使用宏来声明常量。
在所有其他情况下,宏只会混淆代码。
下面就是一个生动的混乱例子:https://www.mql5.com/ru/forum/170952/page50#comment_5488178。
这个有什么问题?
如果我们需要替换 OrdersTotal() 呢?
这样断章取义是不好的。每个 "On "函数中都会用到这个宏。
我见过所有的函数。它在所有这些函数中都没有任何作用。
这个宏有什么问题吗?
除了混淆视听,它什么也做不了。
如果我们需要替换OrdersTotal() 呢?
您不需要替换OrdersTotal()。
我都见过。在所有这些功能中,它都没有做任何有用的事情。
除了混淆视听,它也一无是处。
您不需要替换OrdersTotal()。
我听到了。我不知道其他人使用发布的库有多方便,也不知道有多少人是他们的用户。
所以我不会替别人说话。也许,有一天我会对宏采取不同的态度。现在我不能同意你的观点。