Hatalar, hatalar, sorular - sayfa 1837

 
fxsaber :
Bu sıfır.

Evet anladım. Gerçekten de TRADE_TRANSACTION_DEAL_ADD ile nerede sipariş olabilir...

Teşekkür ederim.

 
böcek boyutu
 void f( uchar &Array[] )
{
   Print ( sizeof (Array));
}

void OnStart ( void )
{
   uchar Bytes[ 1 ];
  
   Print ( sizeof (Bytes));
  
  f(Bytes);
}

Sonuç
 1
52
 

Test sırasında günlük, siparişin süresinin dolacağı zamanı göstermez:

2017.03.30 22:12:30.271 Çekirdek 1 2017.01.18 16:55:00 alım limiti 0.01 EURUSD'de 1.06789 (1.06879 / 1.06889 / 1.06889)
2017.03.30 22:12:30.271 Çekirdek 1 siparişinin süresi doldu [#4 satın alma limiti 1.06789'da 0.01 EURUSD]

Bunun şöyle olmasını istiyorum:

2017.03.30 22:12:30.271 Çekirdek 1 2017.01.18 17:25:00 siparişin süresi doldu [#4 satın alma limiti 1.06789'da 0.01 EURUSD]

 
fxsaber :
böcek boyutu
Sonuç

1 baytlık yerel bir dizi, parametre olarak iletildiğinde genel bir dizi nesnesine dönüşür. Nesnenin arabellek işaretçisi aslında yerel diziye bağlıdır. ancak yeniden dağıtılamaz.

f fonksiyonunun girişi, dinamik de dahil olmak üzere herhangi bir dizi olabilir.

 
Slawa :

1 baytlık yerel bir dizi, parametre olarak iletildiğinde genel bir dizi nesnesine dönüşür. Tampon işaretçisi aslında yerel bir diziye bağlıdır. ancak yeniden dağıtılamaz.

f fonksiyonunun girişi, dinamik de dahil olmak üzere herhangi bir dizi olabilir.

Bu, iç mimarinin çok ilginç bir açıklamasıdır. Ancak bu nedenle sizeof, kod yazarken düşündüğünüzden tamamen farklı bir şey üretir.

Onlar. belgelerde bazı tutarsızlıklar var ve her seferinde kontrol etmeden nasıl kod yazılacağı belirsiz hale geliyor.


Ayrıca, fonksiyondan çıktıktan sonra sizeof'u çağırırsanız, bu tür nüansların etkisi olmadan boyut belirlenir.

 

Pozisyonları uyarı olmadan senkronize etme seçeneği de çalışmıyor ve spreadler içinde yürütme de çalışmıyor,
en kötü fiyata açılır ve nasıl düzenlenmez, vb. tüm terminallerde. Tüm pozisyonlar ne kadar açılır.

Sağlayıcı tüm olumlu fırsatları kapattığında ne beklenir!

 
fxsaber :

Bu, iç mimarinin çok ilginç bir açıklamasıdır. Ancak bu nedenle sizeof, kod yazarken düşündüğünüzden tamamen farklı bir şey üretir.

Onlar. belgelerde bazı tutarsızlıklar var ve her seferinde kontrol etmeden nasıl kod yazılacağı belirsiz hale geliyor.


Ayrıca, fonksiyondan çıktıktan sonra sizeof'u çağırırsanız, bu tür nüansların etkisi olmadan boyut belirlenir.

sizeof ile ilgili belgeleri dikkatlice okudunuz mu?

Bir veri türünün boyutunu veya herhangi bir veri türündeki bir nesnenin boyutunu alma işlemi ( sizeof )

sizeof operatörünü kullanarak, bir tanımlayıcıya veya türe karşılık gelen belleğin boyutunu belirleyebilirsiniz. sizeof operatörü aşağıdaki biçime sahiptir:

Misal:

sizeof (ifade)

Parantez içine alınmış herhangi bir tanımlayıcı veya tür adı bir ifade olarak kullanılabilir. Bir geçersiz tip adının kullanılamayacağını ve bir tanımlayıcının bir bit alanına atıfta bulunamayacağını veya bir işlev adı olamayacağını unutmayın.

İfade statik bir dizinin adıysa (yani, ilk boyut verilir), sonuç tüm dizinin boyutudur (yani, öğe sayısının ve türün uzunluğunun çarpımı). İfade bir dinamik dizinin adıysa (ilk boyut belirtilmemişse), sonuç dinamik dizi nesnesinin boyutu olacaktır.

Sizeof, bir yapı veya sınıf türü adına veya bir yapı veya sınıf türüne sahip bir tanımlayıcıya uygulandığında, sonuç, yapının veya sınıfın gerçek boyutudur.

PS, bir dizinin boyutunu bulmanın daha doğrudan yolları var

 
Slawa :

İfade statik bir dizinin adıysa (yani, ilk boyut verilir), sonuç tüm dizinin boyutudur (yani, öğe sayısının ve türün uzunluğunun çarpımı).

Alıntıdan sadece yukarıdaki kodla ilgili bir parça bıraktım. Orada statik bir dizi var ve bahsettiğiniz iki sayının çarpımı bire eşit olmalı.

Aktarımdan sonra statik dizi dinamik hale gelir ve geri döndüğünde statik hale dönerse, dizi statik biçimde nasıl aktarılır?

PS, bir dizinin boyutunu bulmanın daha doğrudan yolları var

sizeof çok yönlülüğü nedeniyle iyidir - hem normal türlere hem de dizilere uygulanabilir. Ve ArraySize yalnızca diziler için geçerlidir.
 
fxsaber :

Alıntıdan sadece yukarıdaki kodla ilgili bir parça bıraktım. Orada statik bir dizi var ve bahsettiğiniz iki sayının çarpımı bire eşit olmalı.


Tekrar. Statik bir dizinin olduğu yerde, oradaki birimi gösterir.

İşlev parametreleri hiçbir zaman statik diziler olmadı. Orada - nesnenin hangi dizi olduğu önceden bilinmiyor. Dinamik, statik, zaman serisi, gösterge arabelleği

"sizeof evrenselliği" size nasıl yardımcı olur? Bu, doğrudan bellek erişimi olan C veya C++ değildir. Ve sonra sizeof sonuçlarını yorumlarken dikkatli olmalısınız. 1000 elemana dinamik bir dizi ayırın ve sizeof için sorun. C++ hakkında konuşuyorum - sonuçtan şaşırmışa benziyorsunuz

_countof hakkında bir şey duydunuz mu?

 
Slawa :

Tekrar. Statik bir dizinin olduğu yerde, oradaki birimi gösterir.

İşlev parametreleri hiçbir zaman statik diziler olmadı. Orada - nesnenin hangi dizi olduğu önceden bilinmiyor. Dinamik, statik, zaman serisi, gösterge arabelleği

"sizeof evrenselliği" size nasıl yardımcı olur? Bu, doğrudan bellek erişimi olan C veya C++ değildir. Ve sonra sizeof sonuçlarını yorumlarken dikkatli olmalısınız. 1000 elemana dinamik bir dizi ayırın ve sizeof için sorun. C++ hakkında konuşuyorum - sonuçtan şaşırmışa benziyorsunuz

_countof hakkında bir şey duydunuz mu?

Sadece MQL hakkında biraz bilgim var. SI - Bilmiyorum, o yüzden duymadım.

 void OnStart ( void )
{
   uchar Bytes[];
  
   ArrayResize (Bytes, 100 );
  
   Print ( sizeof (Bytes));
}

Sonuç 52. Bu normal mi? İç mimariden şikayetim yok. Sadece kodlama yaparken fikirlerimin yanlış olmamasını istiyorum. Görüşler, belgelerin dikkatli bir şekilde okunmasına ve belirsizlik durumunda test komut dosyalarına dayalı olarak oluşturulur.


Bu durumda, büyük bir koda rastlamak anlaşılmaz bir davranış değildir. Ve uzun bir araştırmadan sonra, bahsettiğiniz nüansa geldim, ki bu forumdaki hiç kimse için pek açık değil. Ve yukarıdaki örnekte, genellikle sizeof dinamik dizilerin yapılamayacağı ortaya çıkıyor (sonuç her zaman 52'dir).