Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 162
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
dizeleri veya dinamik dizileri veya sınıf referanslarını içeren yapılar ve sınıflar için sizeof() parmağı gökyüzüne işaret edecektir.
ve anlayabiliyorum :-)
mql'deki dize türü çok yanıltıcıdır ve belgelerde tam olarak açıklanmamıştır.
Ancak C diline göre, bir karakter dizisinin (tampon) bir dize tipine sarıldığını tahmin edebilirsiniz.
Ve sonra danslar nasıl çalıştığını anlamakla başlar))
mql'deki dize türü çok yanıltıcıdır ve belgelerde tam olarak açıklanmamıştır.
Ancak C diline göre, bir karakter dizisinin (tampon) bir dize tipine sarıldığını tahmin edebilirsiniz.
Ve sonra danslar nasıl çalıştığını anlamakla başlar))
C'de string yok.
dizeleri veya dinamik dizileri veya sınıf referanslarını içeren yapılar ve sınıflar için sizeof() parmağı gökyüzüne işaret eder.
ve anlayabiliyorum :-)
Ama neden?
Herhangi bir dinamik dizi için, MQL5'te 52 bayt olan dinamik dizi nesnesinin boyutunu gösterecektir.
C'de string yok.
Zaten var, ama bahsettiğimiz şey bu değil.
Evet, C'de char[] var, mesele şu ki mql dizgisine sarılmış
Ama neden?
Herhangi bir dinamik dizi için, MQL5'te 52 bayt olan dinamik dizi nesnesinin boyutunu gösterecektir.
neyin büyüklüğünü ve kimin için gösterecek?
52 bayt, yalnızca onların dahili aygıtıdır.
Neden 64 net değil, hizalayabilirler :-)
Zaten var, ama bahsettiğimiz şey bu değil.
Evet, C'de bir karakter[] var, mesele şu ki bir mql dizgisine sarılmış
Pekala, açık.
Dize işlevlerini hiç kullanmıyorum. StringToCharArray işlevini kullanarak bunları hemen bir char dizisine dönüştürüyorum ve ardından diziyle çalışıyorum. Deneyimden çok daha verimli.
Özellikle de ayrıştırma söz konusu olduğunda.
neyin büyüklüğünü ve kimin için gösterecek?
52 bayt, yalnızca onların dahili aygıtıdır.
Neden 64 net değil, hizalayabilirler :-)
Muhtemelen herhangi birini farklı tiplerle yapılandırın. Örneğin, 5 ulong ve 3 uint. Belki dahili işleme ve son aramanın zamanı mevcuttur. HZ. Bu yapının neler içerebileceğini asla bilemezsiniz.
Pekala, açık.
Dize işlevlerini hiç kullanmıyorum. StringToCharArray işlevini kullanarak bunları hemen bir char dizisine dönüştürüyorum ve ardından diziyle çalışıyorum. Deneyimden çok daha verimli.
Ve büyük olasılıkla mql dizesinin altında kısa[] veya wchar_t[] veya wchar_t* vardır
Sonuçta, mql dizeleri unicode'da ve utf 2 bayttır.
Ve StringToCharArray, short[]'tan char[]'a dönüşür
Ve büyük olasılıkla mql dizesinin altında kısa[] vardır
Sonuçta, unicode'da mql'deki satırlarda 2 bayt var.
Ve StringToCharArray, short[]'tan char[]'a dönüşür
hayır, fark ederdim. Bazı durumlarda (Unicode ile çalışırken) bunu dışlamama rağmen, bu mümkündür. Örneğin Java'da char türü 2 bayttır.
Bir kripto borsasındaki verileri iki şekilde ayrıştırmaya çalıştım: bu JSON kitaplığı aracılığıyla ve bir char dizisiyle çalışarak.
Aradaki fark hız olarak 700 (!!!) kat çıktı. şoktaydı. Belki de JSON'un en iyi uygulaması yoktu.