Hatalar, hatalar, sorular - sayfa 1495

 
Karputov Vladimir :
Hayali (veya kurgusal) aboneler adına soru sormayı bırakın. Bir abonenin sorusu varsa sorsun. Aksi takdirde, bunu sinyalin bir reklamı olarak kabul edeceğim.
Korkarım beni yanlış anladınız Sinyalim uzun zamandır reklama ihtiyaç duymuyor. Kullandığım hizmetin teknik yönlerini anlamaya çalışırım. Ancak önce bana dönüyorlar.
 
Artem Prischepa :
Korkarım beni yanlış anladınız Sinyalim uzun zamandır reklama ihtiyaç duymuyor. Kullandığım hizmetin teknik yönlerini anlamaya çalışırım. Ancak önce bana dönüyorlar.
Bu durumda, Sinyaller hizmetindeki (ilk gönderi) SSS başlığındaki soruları inceleyin.
 

Bu bir hata mı yoksa dili anlamam mı:

 void Func( int & Tmp )
{
   return ;
}

void OnStart ( void )
{
   int Tmp1, Tmp2;
  
  Func(( 0 > 1 ) ? Tmp1 : Tmp2); // '?' - parameter passed as reference, variable expected 
    
   return ;
}
 
zaskok3 :

Bu bir hata mı yoksa dili anlamam mı:

Üçlü işlem ifadesinin sonucu, Tmp1 değişkeninin veya Tmp2 değişkeninin içeriğidir.

Ve sahip olduğunuz gibi ifadenin sonucu değil, Func işlevine iletilmelidir, ancak bir referans

 

Bu sorunla nasıl başa çıkılır?

Expert Advisor'ı RENKO çizelgeleri oluşturan bir çizelgeye kurduktan sonra terminal donuyor.

Terminali yeniden başlatmak yardımcı olmuyor. Uzmanı klasörden sildi - yardımcı olmadı!

Ne yapalım?

win7/64mt4/950

 
Slawa :

Üçlü işlem ifadesinin sonucu, Tmp1 değişkeninin veya Tmp2 değişkeninin içeriğidir.

Değişkenin kendisi değil, içerik mi? Görünüşe göre, burada zayıf bir anlayışım var. Teşekkür ederim!

Üçlü alternatifi denedim, işe yaramadı:

 //  Func((0 > 1) ? Tmp1 : Tmp2); // '?' - parameter passed as reference, variable expected
  
   // Так не пашет
  ( 0 > 1 ) ? Func(Tmp1) : Func(Tmp2); // 'Func' - expression of 'void' type is illegal
  
   // Так, конечно, работает
   if ( 0 > 1 )
    Func(Tmp1);
   else
    Func(Tmp2);

Üçlü burada atama olmadan.

 
zaskok3 :

Değişkenin kendisi değil, içerik mi? Görünüşe göre, burada zayıf bir anlayışım var. Teşekkür ederim!

Üçlü alternatifi denedim, işe yaramadı:

Üçlü burada atama olmadan.

Üçlü bir işlemin sonucu, koşullu ifadenin sonucuna bağlı olarak ya birinci ifadenin sonucu ya da ikinci ifadenin sonucudur.

Ortaya çıkan sonuç bir değer olduğu için bir yere atanmalıdır (veya başka bir ifadenin üyesi olmalıdır).

Sadece yazmakla aynı şey

 int a= 1 ;
int b= 2 ;

a + b;
 

Slawa :

Ortaya çıkan sonuç bir değer olduğu için bir yere atanmalıdır (veya başka bir ifadenin üyesi olmalıdır).

Sadece yazmakla aynı şey

void Func'ı int Func ile değiştirirsem, gerçekten de bire bir sonuç çıkar. Boşluk ile - bir serseri. Vurgulanan ifade yüzünden mi?
 
zaskok3 :
void Func'ı int Func ile değiştirirsem, gerçekten de bire bir sonuç çıkar. Boşluk ile - bir serseri. Vurgulanan ifade yüzünden mi?
Evet
 
Slawa :
Evet
Anladım. Amigo kız için teşekkürler!