if ( FileReadStruct (handle,temp_rate)!= 60 )
{
IsError= true ;
Print ( __FUNCSIG__ , " Не удалось прочитать данные из файла по причине ошибки " , GetLastError ());
return ;
}
Ancak, bazı işlevler void türündedir ve diğerleri bir değer döndürür, bu yüzden onlardan sıfır döndürürüm:
return ( 0 );
Her durumda benim için doğru seçeneğin yerini alacak kadar sihirli bir makro yapabilir miyim?
Ancak, bazı işlevler void türündedir ve diğerleri bir değer döndürür, bu yüzden onlardan sıfır döndürürüm:
Her durumda benim için doğru seçeneğin yerini alacak sihirli bir makro yapabilir miyim?
Bir makroda dönüşü kullanma - kişinin kendi ayağına doğrultulmuş bir silahı vardır ve if ile birlikte - bir silaha dönüşür))) Ama gerçekten istiyorsanız, o zaman:
#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 );
...
Test etmedim, ancak çalışması gerekir. Aynı zamanda topu tekrar tabancaya çevirdi)))
Yani ya dönüş değerini ya da dönüşecek olan boşluğu son parametre olarak iletirim.
return ;
ve boşluk hiçbir şey ifade etmez. Tabii unuttuğum gibi favori parantezlerim olmadan da kullanılabiliyor.
return (x);
return x; //равноценны
Ve bana aynı anda söyleme, bu yapı neden sadece bir kez yürütülebilecek bir döngünün içine dolduruluyor? Bu bir top tabancaya dönüşmüş mü? Sonsuz özyineleme veya buna benzer durumlar var mı?
Yani ya dönüş değerini ya da dönüşecek olan boşluğu son parametre olarak iletirim.
ve boşluk hiçbir şey ifade etmez. Tabii unuttuğum gibi favori parantezlerim olmadan da kullanılabiliyor.
Ve bana aynı anda söyleme, neden bu yapı sadece bir kez yürütülebilecek bir döngünün içine dolduruluyor? Bu bir top tabancaya dönüşmüş mü? Sonsuz özyineleme veya buna benzer durumlar var mı?
if (koşul) CHECK_READ(h,r,0); yoksa CHECK_READ(h,r,1);
Makroyu do-while sarmalayıcısı olmadan genişletin ve ne olduğunu görün)))
Vladimir Simakov : if (koşul) CHECK_READ(h,r,0); yoksa CHECK_READ(h,r,1);
Makroyu do-while sarmalayıcısı olmadan genişletin ve ne olduğunu görün)))
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;
};
Eğer ikame ilkesini doğru anladıysam öyle görünüyor.
Kıvrımlı parantezlerden sonra fazladan noktalı virgül. Ve şimdi başka ne ifade ettiği açık değil.
Ne olduğunu görmek için makro genişletmeyi otomatikleştirmenin kolay bir yolu olmaması çok kötü. Kendi senaryosunu karıştırmadıkça.
Teşekkür ederim! Makroda bir süre sonra noktalı virgül olmamasına şaşmamalı.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
MT4 veya MT5 ister misiniz? sergilediğim kod - sildim. Burada MT4'ü tartıştıklarını hemen fark etmedim.
MQL4
MQL4
Tavsiye ederim - birçok iyi şey bulunabilir https://www.mql5.com/ru/forum/131859/page6#comment_3359705
Daha spesifik ve muhtemelen ilginç bir soru:
Aynı yapıyı farklı işlevlerde kullanıyorum
Ancak, bazı işlevler void türündedir ve diğerleri bir değer döndürür, bu yüzden onlardan sıfır döndürürüm:
Her durumda benim için doğru seçeneğin yerini alacak kadar sihirli bir makro yapabilir miyim?
Daha spesifik ve muhtemelen ilginç bir soru:
Aynı yapıyı farklı işlevlerde kullanıyorum
Ancak, bazı işlevler void türündedir ve diğerleri bir değer döndürür, bu yüzden onlardan sıfır döndürürüm:
Her durumda benim için doğru seçeneğin yerini alacak sihirli bir makro yapabilir miyim?
Bir makroda dönüşü kullanma - kişinin kendi ayağına doğrultulmuş bir silahı vardır ve if ile birlikte - bir silaha dönüşür))) Ama gerçekten istiyorsanız, o zaman:
Test etmedim, ancak çalışması gerekir. Aynı zamanda topu tekrar tabancaya çevirdi)))
Teşekkür ederim!
Yani ya dönüş değerini ya da dönüşecek olan boşluğu son parametre olarak iletirim.
return ;ve boşluk hiçbir şey ifade etmez. Tabii unuttuğum gibi favori parantezlerim olmadan da kullanılabiliyor.
Ve bana aynı anda söyleme, bu yapı neden sadece bir kez yürütülebilecek bir döngünün içine dolduruluyor? Bu bir top tabancaya dönüşmüş mü? Sonsuz özyineleme veya buna benzer durumlar var mı?
Teşekkür ederim!
Yani ya dönüş değerini ya da dönüşecek olan boşluğu son parametre olarak iletirim.
ve boşluk hiçbir şey ifade etmez. Tabii unuttuğum gibi favori parantezlerim olmadan da kullanılabiliyor.
Ve bana aynı anda söyleme, neden bu yapı sadece bir kez yürütülebilecek bir döngünün içine dolduruluyor? Bu bir top tabancaya dönüşmüş mü? Sonsuz özyineleme veya buna benzer durumlar var mı?
if (koşul) CHECK_READ(h,r,0); yoksa CHECK_READ(h,r,1);
=
Eğer ikame ilkesini doğru anladıysam öyle görünüyor.
Kıvrımlı parantezlerden sonra fazladan noktalı virgül. Ve şimdi başka ne ifade ettiği açık değil.
Ne olduğunu görmek için makro genişletmeyi otomatikleştirmenin kolay bir yolu olmaması çok kötü. Kendi senaryosunu karıştırmadıkça.
Teşekkür ederim! Makroda bir süre sonra noktalı virgül olmamasına şaşmamalı.