Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 151
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Statik değişken ilk çağrıda başlatılır.
geliştiricilerin bunu neden yaptığını tahmin etmek zor, bence bu bir hata - derleme aşamasında bilinmeyen bir değere sahip sabit bir değişkenin başlatılması
Genellikle neyin ve ne zaman başlatıldığını kontrol ederim
2019.11.30 11:09:32.456 tst (EURUSD,H1) init_static
2019.11.30 11:09:32.457 tst (EURUSD,H1) f , j=1
2019.11.30 11:09:32.457 tst (EURUSD,H1) f , j=1
benim örneğimde, her şey doğru bir şekilde başlatıldı ve derleyici gelecekte j sabitine bir değer vermiyor - bir derleme hatası olacak
Resmi açıklamalar gelene kadar kullanmanızı tavsiye etmiyorum, bir anda alıp düzelteceklerdir.
Eh, hiçbir durumda kullanmaya değmez, çünkü. bu kavramsal bir hatadır.
Eh, hiçbir durumda kullanmaya değmez, çünkü. bu kavramsal bir hatadır.
Neden kavramsal? Aksine, bazen derleme aşamasında statik bir değişkenin hangi değerden başlatılacağı bilinmez, burada, sadece ilk yardım çağrısında başlatma.
Eh, hiçbir durumda kullanmaya değmez, çünkü. bu kavramsal bir hatadır.
MVS C++17'nin Uygulanması:
Statik yerel değişkenler
static veya thread_local (C++11'den beri) belirteci ile blok kapsamında bildirilen değişkenler, statik veya thread (C++11'den beri) depolama süresine sahiptir, ancak kontrol bildirimlerinden ilk geçtiğinde başlatılır (başlatmaları sıfır veya blok ilk girilmeden önce gerçekleştirilebilen sabit başlatma ). Diğer tüm aramalarda bildirim atlanır.
Başlatma bir istisna atarsa , değişkenin başlatıldığı düşünülmez ve denetim bildirimden bir sonraki geçişte başlatma yeniden denenir.
Başlatma, değişkenin başlatıldığı bloğa yinelemeli olarak girerse, davranış tanımsızdır.
Birden çok iş parçacığı aynı statik yerel değişkeni aynı anda başlatmaya çalışırsa, başlatma tam olarak bir kez gerçekleşir (benzer davranış std::call_once ile isteğe bağlı işlevler için elde edilebilir).
Not: Bu özelliğin olağan uygulamaları, halihazırda başlatılmış yerel statikler için çalışma zamanı ek yükünü atomik olmayan tek bir boole karşılaştırmasına indirgeyen, çift kontrol edilen kilitleme modelinin türevlerini kullanır.
Bir blok kapsamlı statik değişken için yıkıcı , program çıkışında çağrılır , ancak yalnızca başlatma başarılı bir şekilde gerçekleştiyse.
Aynı satır içi işlevin (dolaylı olarak satır içi olabilir) tüm tanımlarındaki işlev yerel statik nesnelerinin tümü, bir çeviri biriminde tanımlanan aynı nesneye atıfta bulunur.
Şahsen ben sadece böyle bir uygulamanın mql'de yasal olması durumunda, sadece rıhtımlara kaydedilmesi gerekiyor.
Neden kavramsal? Aksine, bazen derleme aşamasında statik bir değişkenin hangi değerden başlatılacağı bilinmez, burada, sadece ilk yardım çağrısında başlatma.
Sıfır (varsayılan) değeri başlatmanın gerekli olduğu anlamına gelir. Ve neden karşısına çıkan ilk değerle başlasın? Ardından, işlevin davranışının, bu işleve yapılan çağrıların sırasına göre belirlendiği ve bir yan etki yarattığı ortaya çıktı. Ve bu yanlış. Dahilileri dışarıdan başlatmak istiyorsanız, bir işlev değil, bir sınıf kullanmanız gerekir.
Ancak, bunun derlenemediğini söylerken gerçekten yanılmışım. C++'da bu, garip bir şekilde işe yarıyor, ancak bunu yapmak hiç aklıma gelmedi.
Orada hep böyle oldu, kavramsal sorun yok, başka türlü olsaydı sorunlar olurdu.
Ve imha sırası kesinlikle tersine çevrilir.
Orada hep böyle oldu, kavramsal sorun yok, başka türlü olsaydı sorunlar olurdu.
"Düzenle" bağlam menüsünü seçtikten sonra, gezgin kaynak mq5'i ex5 ile aynı yolda bulamaz.
Çünkü ex5, mq5'in yaşadığı Paylaşılan Projelerden komut dosyaları klasörüne taşınmıştır.
Hadi düzeltelim. Test cihazı ayarlarındakiyle aynı akıllı aramayı yapalım
Bir de tam tersi bir durum var. Navigator'da Favoriler'de, ex5 eksikse (örneğin bir derleme hatası oluştu) mq5 düzenlemeye (mq5 kullanılabilir) geçmek mümkün değildir. Lütfen bunu da düzeltin.
Bir de tam tersi bir durum var. Navigator'da Favoriler'de, ex5 eksikse (örneğin bir derleme hatası oluştu) mq5 düzenlemeye (mq5 kullanılabilir) geçmek mümkün değildir. Lütfen bunu da düzeltin.
2250 harika.
Acele et. 2251 - mq5'i açmıyor.
2250 harika.
Acele et. 2251 - mq5'i açmıyor.
O var mı? gerçekten var mı? Hangi yön?
Nasıl çoğaltabilirsin?