Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 161
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik alım-satım stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
2020.01.27 01:15:57.859 tst (EURUSD,H1) (boş) , 0.000000 , 0
tip dökümünü kaldırırsanız, 'NULL' hatası olur - 'void' tipinin ifadesi yasa dışıdır
ilginç, nput dizesinin geçersiz kılmak için başlatılabileceği ortaya çıktı
NULL - başlatma. Örnek, bilerek, girdi olmayan bir dize gösterir.
NULL / NIL (başka bir deyişle), bir dize sabit varlığının başlatılması olamaz.
en azından, çünkü mql dizgisi C'deki gibi bir "işaretçi" değildir. Özel bir "hiçbir şey" durumu yoktur.
PS (Oh, nasıl, bunu kendimden beklemiyordum)
Özel bir "hiçbir şey" durumu yok
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri
fxsaber , 2020.01.26 15:54
Bu durumu her gün kullanıyorum.
en azından, çünkü mql dizgisi C'deki gibi bir "işaretçi" değildir. Özel bir "hiçbir şey" durumu yoktur.
PS (Oh, nasıl, bunu kendimden beklemiyordum)
ne yazık ki, hayır, MQL'deki bir dize, ayrılmış belleğe sahip bir varlıktır, @Ilyas , StringBufferLen() öğesinin neden dizenin uzunluğunu göstermeyebileceğini, ancak tam olarak dizeyi depolamak için ayrılmış belleği gösterdiğini açıkladı
Bu durumu her gün kullanıyorum.
hiç bir gösterge değil, MQL4'teki herhangi bir nesneye işaretçiler yazdırmak için StringConcatenate() kullandım. yerleşik işlevlerin çalışması MQL kurallarına göre uygulanmaz)))
hiç bir gösterge değil, MQL4'teki herhangi bir nesneye işaretçiler yazdırmak için StringConcatenate() kullandım. yerleşik işlevlerin çalışması MQL kurallarına göre uygulanmaz)))
İçerisinin nasıl olduğu önemli değil.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri
Igor Makanu , 2020.01.26 22:27
İçerisinin nasıl olduğu önemli değil.
mesajımı senin örneğinle güncelledim
Ayrıca giriş dizesi s = NULL; ile birkaç kez deneme yaptım.
Anladığım kadarıyla giriş değişkeninin değerini kullanmaya çalışmıyorken bu değer NULL olacak, ancak o anda bu giriş değişkeninin değerini başka bir değişkene atamaya çalışırsak veya sadece bu giriş değişkenini yazdırırsak , sonra bu NULL kaybolur, yani . bu giriş dizesi değişkenine bellek ayrılacak
Anladığım kadarıyla giriş değişkeninin değerini kullanmaya çalışmıyorken bu değer NULL olacak, ancak o anda bu giriş değişkeninin değerini başka bir değişkene atamaya çalışırsak veya sadece bu giriş değişkenini yazdırırsak , sonra bu NULL kaybolur, yani . bu giriş dizesi değişkenine bellek ayrılacak
Giriş değişkeninin çalışma mekanizması yukarıda ayrıntılı olarak açıklanmıştır.
İçerisinin nasıl olduğu önemli değil.
(hala) referans kaldırma varlıklarının çalışmasının (ilişkilerinin) özellikleri var (peki, mql'de işaretçiler yok, C değil, varlıklar olsun)
input, başlangıçta bildirilen böyle bir const'tır. Fiziksel olarak "HİÇBİR ŞEY" değeri verilemez.
const string nothing=NULL; /// <--- ЭТО ЧТО ?
Evet, muhtemelen, böyle bir davranış sadece "aptaldan korunma" dır.
Giriş değişkeninin başlatılması gerektiği gerçeği göz önüne alındığında, değişken zaten bellekte en az bir bayt kaplıyorsa input = NULL yapay olarak ="" ile eşitlenir.
MQL5 girişlerinde:
kesinlikle aynı. Değişken için bellek ayrılmamıştır. Her neyse, hiçbir fark bulamadım.
Ve örneğin Java'da, her iki durumda da değişken için bellek ayrılmamasına rağmen, bu tür girişler küçük bir farka sahiptir. İlk seçenek (String str = null;) başlatılmış olarak kabul edilecektir, ancak değişken için bellek ayrılmamış ve değişken boş olarak yazdırılabilir. Ve ikinci durumda (String str;), bir değişkeni yazdırmaya çalışırken, başlatılmamış bir değişken hakkında bir hata üretilecektir.
Onlar. MQL5 bu konuda daha toleranslıdır.
Hangisi daha iyi, onu bile bilmiyorum.
Değişken için bellek nasıl tahsis edilmez?
Bellek tahsis edildi ve değişken rastgele çöp içeriyor.
Ve dizenin herhangi bir değer göstermemesi gerçeği, arabelleğin boş olması mantıklıdır.
Değişken için bellek nasıl tahsis edilmez?
Bellek ayrılmış, ancak değişken rastgele çöp içermiyor.
Ve dizenin herhangi bir değer göstermemesi gerçeği, arabelleğin boş olması mantıklıdır.