Hatalar, hatalar, sorular - sayfa 2045
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
Doğru, dizinin boyutunu yanlış boyuta ayarladım, belki bir şekilde etkilemiştir (her ne kadar onu hiçbir şekilde etkilememesi gerekir).
Burada boyut = 3 ile deneyin
Tutarsızlığın nedenini buldu. OPTIMIZE=0 modunda bir hata var, ancak OPTIMIZE=1 ile değil. Genelde her zaman yalnızca OPTIMIZE=0 kullanırım
Sonuç için mantıklı (tutarlı) bir açıklama bulursam bir hata görmüyorum. Sonuç C++ ile eşleşmiyorsa hata kanıtının kabul edilebilir olduğunu düşünmüyorum. C++'da birisi öyle düşündü ve yaptı. Ve öyle düşünmeyebilir ve buna göre yapmayabilir. Bu nedenle, orada bir şeye atıfta bulunmamak, olması gerektiği gibi bir tür içsel kavrama dayanmak daha iyidir. Ve "kendine ait" olması arzu edilir, gerçekten de kişinin kendine ait olması. Ve programlama deneyimi kazandıkça "olması gerektiği gibi" klişelerin algılanamaz şekilde dayatılmasının sonucu değil.
Açıklama yoksa hata da yoktur. Ve bir yıl içinde bu açıklama ortaya çıkar ve çok ikna edici ise, o zaman her şey herkes için yeniden yapılmalı ??? C ++'da bunun neden böyle olduğunu yüzlerce kez düşündüler, başka türlü değil. MQL'de bir şey C++'dan farklı düzenlenmişse ve bunun tersi geçerli değilse bir açıklama gerekir.
Ama bir işlev değil.
Ardından, statik sınıf örneklerini devre dışı bırakmanız gerekir - çünkü bunlar yapıcı işlevi tarafından başlatılır
Ve işte değişken başlatma konusunda daha fazlası. Belgelerde belirtilenleri takip ederseniz, diğer global / statik değişkenlere atıfta bulunmak da imkansızdır. Çünkü bu sabit bir ifade değil:
Ancak şimdilik işe yarıyor. Ve birçoğunun hiçbir şeyden şüphelenmeden her zaman bu tür yapıları kullandığına inanıyorum. Ancak, geliştiricilerin herhangi bir zamanda onu kesebilecekleri ortaya çıktı. İşlev başlatmada olduğu gibi, bu kodlar başarıyla derlenmeye devam edecek, ancak düzgün çalışmayacaktır. Genel olarak, tüm MQL bir saatli bombadır.
Ve işte değişken başlatma konusunda daha fazlası. Belgelerde belirtilenleri takip ederseniz, diğer global / statik değişkenlere atıfta bulunmak da imkansızdır. Çünkü bu sabit bir ifade değil:
yapıcı işlevi tarafından başlatıldı - yasakla!
Bu, en son mesajları mantıklı bir şekilde özetlerseniz
Tutarsızlığın nedenini buldu. OPTIMIZE=0 modunda bir hata var, ancak OPTIMIZE=1 ile değil. Genelde her zaman yalnızca OPTIMIZE=0 kullanırım
32 bitlik bir terminalde, herhangi bir OPTIMIZE ile bir hata oluşur.
yapıcı işlevi tarafından başlatıldı - yasakla!
Bu, en son mesajları mantıklı bir şekilde özetlerseniz
Şey, sadece kişi kendini yanlış ifade etti. Tabii ki, bir başlatma işlevinden değil, bir başlatma değerinden bahsediyoruz.
Evet ve Tanrı onları yasaklarla kutsasın. Kendi başlarına bir sorun teşkil etmezler. Ancak bu yasak hiçbir şekilde derleyici tarafından kontrol edilmediğinde, bunun yerine dilin kurallarını atlayarak çalışan bir algoritma ürettiğinde, bu hiçbir şekilde çerçeveye sığmaz. Şimdi bu tür anları arayarak tüm kodları küreklemelisiniz ve genel olarak her zaman tetikte olmalısınız. Pekala, böyle programlama nedir, eski yapıda kalmayı tercih ederim.
Tamam o zaman kusura bakmayın hemen fark etmemişim Şaşırtıcı, elbette, bunu nasıl sinsice değiştirmeyi başardılar ve kimseye hiçbir şey söylemediler. O zaman derleyicinin neden yasadışı bir işlemin gerçekleştirildiği gerçeğine hiçbir şekilde tepki vermediği açık değildir. Onlar. neyse bir bug var
Ve işte değişken başlatma konusunda daha fazlası. Belgelerde belirtilenleri takip ederseniz, diğer global / statik değişkenlere atıfta bulunmak da imkansızdır. Çünkü bu sabit bir ifade değil:
Ancak şimdilik işe yarıyor. Ve birçoğunun hiçbir şeyden şüphelenmeden her zaman bu tür yapıları kullandığına inanıyorum. Ancak, geliştiricilerin herhangi bir zamanda onu kesebileceği ortaya çıktı. İşlev başlatmada olduğu gibi, bu kodlar başarıyla derlenmeye devam edecek, ancak düzgün çalışmayacaktır. Genel olarak, tüm MQL bir saatli bombadır.
Pekala... bu örnekteki belgelerdeki açıklama ile HİÇBİR tutarsızlık yok... Belgelerden alıntıyı dikkatlice inceleyin
veya sabit ifade
Böyle bir başlatma mümkündür. Çünkü 'a' değişkeni bir sabitle başlatılır ve 'b' değişkeni sabit bir ifadeyle başlatılır.
Ardından, statik sınıf örneklerini devre dışı bırakmanız gerekir - çünkü bunlar yapıcı işlevi tarafından başlatılır
dikkat et
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Alexey Viktorov , 2017.10.18 09:19
Sizce neden değiştiler, neden kabul edilemez? Lütfen kendi takdirinize bağlı olarak kullanın. Bütün sorun, statik bir değişken bir fonksiyon tarafından başlatıldığında , başlatmanın "askıya alınması" ve bu fonksiyonun yürütülmesidir. Ve yukarıdaki örnekte, bu fonksiyonda henüz başlatılmamış statik bir değişken var . Buradan ve işlev tarafından başlatılan değişken, karşılık gelen değeri kabul etmez.