[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 512

 
hoz:


这是最简单的方法。但我在看一个程序员的文章,他的启动 函数中根本没有声明什么。

这里有他的顾问的链接。

http://www.forextrade.ru/media/Image/MQLabs/181_ag/ChannelByMACross_Expert.mq4

特别是,我对他如何智能地写代码非常感兴趣。所以,我想学习如何把所有的东西都写在独立的函数中,只添加精华部分开始,而不在那里声明变量。

如果我们将一个变量通过引用传递到一个函数中,我们是在用原始变量的缓冲区工作,而不是用其单独的双倍数。这意味着我们之前在哪个函数中声明它并不重要。不是吗?


他还聪明地写道:

阅读

是的,改变这一行

if(!Trade(signal, priceForBuy, priceForSell))

if(!GetPriceToInput (signal))                                                                                                         
 
Roman.:

你什么时候才能得到你自己的私人露营车,迪曼?)

你在现实世界中一年都没有赚到钱,是吗?你那里有很多START金额分配给你,不是吗?)



很快。
 
Reshetov:

你可以在函数之外声明一个静态变量,然后你就完全不必通过引用传递任何东西了。

你的想法是不正确的。如果你把一个变量作为参数传递给一个函数,它不能在函数主体中声明,它已经在参数中声明了。该函数必须在它被传递的地方被声明。


我的意思是,如果我们从启动 函数或其他函数中传递它,这并不重要。

在这种情况下,我在double GetPriceToInput(int signal) 函数中声明了变量,并将在同一个double GetPriceToInput(int signal) 函数中声明的priceForSellpriceForBuy 变量通过引用传递到bool Trade(int signal, double& priceForBuy, double& priceForSell) 函数。

我把这个函数添加到启动 函数中,看到它们在那里已经是未定义的。我想知道如何修复它。

当然,我可以像你说的那样,在开始时 一次性声明这2个变量,但我可以直接从Double GetPriceToInput(int signal) 函数中 传递 它们。 这就是我的意思。

 
hoz:


我的意思是,如果我们从启动 函数或其他函数中传递它们,这并不重要。

在这种情况下,我在double GetPriceToInput(int signal) 函数中声明了变量,并将在同一个double GetPriceToInput(int signal) 函数中声明的变量priceForSellpriceForBuy 通过引用传递到bool Trade(int signal, double& priceForBuy, double& priceForSell) 函数。

我把这个函数添加到启动 函数中,看到它们在那里已经是未定义的。我想了解如何解决这个问题。

你在哪里传递了它们,为什么你在没有传递它们的地方赋值?

 
Reshetov:

你在哪里传递它们,在哪里给它们赋值?


好吧,我在函数double GetPriceToInput(int signal) 中得到了变量的值。

在这里。

double priceForSell = secondBarClosed - deltaForSell;
double priceForBuy = secondBarClosed + deltaForBuy;

我返回这些值。

return(priceForSell);
return(priceForBuy);

也就是说,这些值已经被函数返回了。

然后我把这些值通过引用发送到函数bool Trade(int signal, double& priceForBuy, double& priceForSell)

这是很明显的!

 
hoz:

也就是说,这些值已经被函数返回了。

它在哪里返回它们,也就是说,在代码中,这些变量的值被函数返回的确切位置是哪里?而且,如果不是通过引用传递,一个函数怎么能返回一个以上的值?
 
hoz:


好吧,我在函数double GetPriceToInput(int signal) 中得到了变量的值。

在这里。

我返回这些值。

也就是说,这些值已经被函数返回了。

然后我把这些值通过引用发送到函数bool Trade(int signal, double& priceForBuy, double& priceForSell)

这里的一切都很清楚!


只是读了一本教科书。特别是,请阅读关于变量范围的 章节。并从简单的例子开始。

SZS 看来你需要从编程的基础知识开始。

 

Reshetov
:

它在哪里返回,也就是说,确切地显示出这些变量值在代码中哪里被函数返回?如果一个函数不是通过引用传递给它的,它怎么能返回一个以上的值呢?

说实话,我已经完全糊涂了。我甚至没有任何例子来看看别人是怎么做的。

我的理解是,除了获取数值之外,你还必须将它们分配给其他一些变量?

VladislavVG:


只需阅读课本。特别是阅读关于变量范围的部分。并从一些简单的例子开始。

看来你需要从编程的基础知识开始。


我不需要基本的东西。我很清楚可变的能见度。教科书中没有关于通过引用传递变量值的内容。你为什么要送我去那里?你在嘲笑我吗?

 

hoz:

我不需要基本的东西。我很清楚可变视力的问题。教科书中没有关于通过引用传递变量值的内容。你为什么要送我去那里?你在跟我开玩笑吗?

那就再见吧。教导一个科学家是没有用的。因此,如果你已经吃饱了,我们就不要嘲笑你了。
 
Reshetov:
那么再见了。教导一个科学家是没有用的。所以我们不要嘲笑你,如果你已经全身心投入工作。 。

为什么要马上把你送走?教科书中没有任何关于参数转移的链接。 为什么我要把同样的东西读100遍? 我问了一个具体问题。我已经把课本读了很多遍。我今天看了一下,里面没有任何关于通过引用来转移 参数的内容!我想,这就是为什么我在这里说 "我 "的意思。