外部和输入之间的区别 - 页 6 1234567 新评论 Alexey Navoykov 2019.06.30 09:06 #51 一般来说,我们应该从全局变量 是邪恶的这一事实出发,当这样的变量在许多文件中使用,并且可以从任何地方改变,那么它就是邪恶的平方!因此,这样的变量应该总是被声明为常量(除非我们谈论的是用于调试的辅助变量,它不影响算法的逻辑)。 所以,如果我们有一个常量的全局变量,那么我们有一个明显的结论:在结尾处加上括号,使之成为一个函数,从而获得为这个函数设置任何实现的灵活性,不是更容易吗? 而且考虑到MQL中的外部变量发展不足,正如我上面写的,我们没有其他选择。 Vladimir Simakov 2019.06.30 10:19 #52 如果项目由多个mq5文件组成(不要与mqh混淆),就需要extern指定器。在这种情况下,在一个单独的文件中声明全局变量 是有意义的。如果项目由mqh组成,并且使用#include构建,则不需要extern,因为它是一个文件被分成几个文件。 Igor Makanu 2019.06.30 10:26 #53 Vladimir Simakov: 如果项目由多个mq5文件组成(不要与mqh混淆),就需要extern指定器。在这种情况下,在一个单独的文件中声明全局变量 是有意义的。如果项目由mqh组成,并且使用#include构建,则不需要extern,因为它是一个文件被分成几个文件。 需要一个例子,我试过在库中使用extern - 它不工作https://www.mql5.com/ru/forum/316795/page2#comment_12259472 Vladimir Simakov 2019.06.30 10:36 #54 Igor Makanu: 需要一个例子,我试过在库中使用extern - 它不工作https://www.mql5.com/ru/forum/316795/page2#comment_12259472 这不是为了图书馆,而是为了项目。该项目可以在#include上建立,也可以做几个mq5文件。在第二种情况下,需要使用extern来将全局变量进入不同文件的范围。 Igor Makanu 2019.06.30 10:40 #55 Vladimir Simakov: 这里,在第二种情况下,你需要extern,它将在不同文件的范围内进入全局变量。 我不介意,但我需要一个例子,在这里你可以猜测在哪里使用extern - 我在库里试过,没有用,告诉我你是如何使用extern的 Alexey Navoykov 2019.06.30 10:40 #56 Vladimir Simakov: 它不是用于图书馆,而是用于项目。该项目可以在#include上建立,也可以做几个mq5文件。在第二种情况下,需要使用extern来将全局变量进入不同文件的范围。 究竟如何将变量输入范围?项目 中的mq5-文件是独立的,它们没有任何联系。 每个文件的编译是独立的,不是吗? Vladimir Simakov 2019.07.01 12:25 #57 整个问题的关键在于,extern被证明是根本没有必要的。在任何项目 文件中全局声明的变量在其所有的文件中都可用。但为什么呢?给创作者的问题。 Ilyas 2019.07.01 12:30 #58 Vladimir Simakov: 整个问题的关键在于,extern被证明是根本没有必要的。在任何项目文件中全局声明的变量在其所有的文件中都可用。但为什么呢?给创作者的问题。 你可以在所有*.mqh文件中声明一个外部变量,在这些文件中使用它。 那么,这样的*.mqh文件就不依赖于*.mq5(或其他*.mqh)文件,在该文件中声明了全局变量。 这使你可以在其他项目中使用这些文件,增加代码的重复使用。 Vladimir Simakov 2019.07.01 13:05 #59 Ilyas: 你可以在所有*.mqh文件中声明extern变量,在这些文件中使用它。 那么,这样的*.mqh文件就不依赖于*.mq5(或其他*.mqh)文件,在该文件中,全局变量被声明。 这使你可以在其他项目中使用这些文件,增加代码的重复使用。 谢谢,现在我明白了这个逻辑。我原来以为它类似于C++中的extern。 Dmitry Fedoseev 2019.07.01 13:49 #60 Vladimir Simakov: 谢谢,现在我明白了这个逻辑。我原来以为它类似于C++中的extern。 这不是很相似吗? 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一般来说,我们应该从全局变量 是邪恶的这一事实出发,当这样的变量在许多文件中使用,并且可以从任何地方改变,那么它就是邪恶的平方!因此,这样的变量应该总是被声明为常量(除非我们谈论的是用于调试的辅助变量,它不影响算法的逻辑)。
如果项目由多个mq5文件组成(不要与mqh混淆),就需要extern指定器。在这种情况下,在一个单独的文件中声明全局变量 是有意义的。如果项目由mqh组成,并且使用#include构建,则不需要extern,因为它是一个文件被分成几个文件。
需要一个例子,我试过在库中使用extern - 它不工作https://www.mql5.com/ru/forum/316795/page2#comment_12259472
需要一个例子,我试过在库中使用extern - 它不工作https://www.mql5.com/ru/forum/316795/page2#comment_12259472
这里,在第二种情况下,你需要extern,它将在不同文件的范围内进入全局变量。
我不介意,但我需要一个例子,在这里你可以猜测在哪里使用extern - 我在库里试过,没有用,告诉我你是如何使用extern的
它不是用于图书馆,而是用于项目。该项目可以在#include上建立,也可以做几个mq5文件。在第二种情况下,需要使用extern来将全局变量进入不同文件的范围。
整个问题的关键在于,extern被证明是根本没有必要的。在任何项目文件中全局声明的变量在其所有的文件中都可用。但为什么呢?给创作者的问题。
你可以在所有*.mqh文件中声明一个外部变量,在这些文件中使用它。
那么,这样的*.mqh文件就不依赖于*.mq5(或其他*.mqh)文件,在该文件中声明了全局变量。
这使你可以在其他项目中使用这些文件,增加代码的重复使用。
你可以在所有*.mqh文件中声明extern变量,在这些文件中使用它。
那么,这样的*.mqh文件就不依赖于*.mq5(或其他*.mqh)文件,在该文件中,全局变量被声明。
这使你可以在其他项目中使用这些文件,增加代码的重复使用。
谢谢,现在我明白了这个逻辑。我原来以为它类似于C++中的extern。
这不是很相似吗?