Şablon parametreli derleyici hatası = void* - sayfa 8

 
A100 :

Yanlış ifade ettiysem - lütfen beni düzeltin - parantez ile ilgili uyarıların gerekli olduğu kavramımı kısaca ve açık bir şekilde belirttim

Doğru değil. Parantez kullanımı hata olasılığını azaltır.

Bir uyarı, nispeten birçok kodlayıcının bu tür bir kayıtta hata yaptığına dair bir mesajdır: sonuç onların istediği gibi değildir. Bu, yalnızca parantezler için değil, tüm uyarılar için geçerlidir.

 
fxsaber :

Doğru değil. Parantez kullanımı hata olasılığını azaltır .

Bir uyarı, nispeten birçok kodlayıcının bu tür bir kayıtta hata yaptığına dair bir mesajdır: sonuç onların istediği gibi değildir. Bu, yalnızca parantezler için değil, tüm uyarılar için geçerlidir.

Bu bir kavram değil, genel bir akıl yürütmedir.

Soru pratik bir düzlemdedir ve soyut değil, somuttur: Parantezler nerede gereklidir? Her yer? Yoksa seçici olarak mı? O zaman seçimi kim belirliyor? fxsaber? Açıkça belirtir misin? Bu kavramın derleyicide uygulanabilmesi için

Formüle ettim: "sadece onlarsız yapamayacağın yerde"

 
pavlick_ :

Not: ama yapsaydım, bunu standart artı kitaplığına (isimler, davranış vb.) mümkün olduğunca benzer yapardım, bu yüzden benim için başka seçenek yok. Her şey zaten yazılmışken neden başka bir belirtim üretelim?

Bunu yapsaydım, mql'deki nesne ve işaretçi dizilerine hiç gerek kalmazdı. Her döngü için dinamik listeler ve Marcos, alım satım görevlerinin %99'unu en kompakt ve uygun şekilde çözmenize olanak tanır. Ayrı bir liste sınıfına bile ihtiyacınız yok. Tüm bu çan ve ıslıklara genellikle burada sahip olduğumuzdan daha büyük ölçekte ihtiyaç duyulmaktadır ...

 
A100 : formüle edebilir misiniz?

kodu anlamanın daha kolay olduğu yer

 
TheXpert :

kodu anlamanın daha kolay olduğu yer

Böylece bu kavram derleyicide uygulanabilir. Fazladan parantez koymayı kimse yasaklamaz. Ekstra uyarılar sorusu

 
A100 :

Soru pratik bir düzlemdedir ve soyut değil, somuttur: Parantezler nerede gereklidir? Her yer? Yoksa seçici olarak mı? O zaman seçimi kim belirliyor? fxsaber? Açıkça belirtir misin?

Soru şuydu, MT4 derleyicisi doğru mu?

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaTrader 5 platformunun yeni versiyonu 1930 yapımı: MQL5'te kayan grafik pencereleri ve .Net kitaplıkları

fxsaber , 2018.12.11 19:44

 #property strict
   // from MT5: Canvas.mqh
   uint Pixel = (r<< 16 |g<< 8 |b<< 0 | 255 << 24 ) & 0xffffffff ; //check operator precedence for possible error; use parentheses to clarify precedence


Bu durumda, doğru. Burada parantezler gerekli değildir, ancak arzu edilir, çünkü hata yapması muhtemeldir. Derleyici her türlü uyarıyı bu tür olasılıklara dayanarak verir. Sadece icat edildikleri için değil.

 
fxsaber :

Bu durumda, doğru.

Bu aşamada belirli örneklere gerek yoktur (istediğiniz kadar verilebilir). Derleyicide uygulanabilecek tek bir konsepte ihtiyacımız var (eksik parantez durumunda uyarı vermek gerektiğinde)

 
A100 :

Bu aşamada belirli örneklere gerek yoktur (istediğiniz kadar verilebilir). Derleyicide uygulanabilecek bir konsepte ihtiyacınız var

Zaten iyi uygulandı. Sadece MT4 daha akıllı.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaTrader 5 platformunun yeni versiyonu 1930 yapımı: MQL5'te kayan grafik pencereleri ve .Net kitaplıkları

fxsaber , 2018.12.11 20:22

Bunlar gereksiz yazılar değil. Her zaman öncelikler vardır

 bool a = r && g || b; // check operator precedence for possible error; use parentheses to clarify precedence

Derleyici zaten ve beş olası bir hata konusunda uyarır.

 
fxsaber :

Zaten iyi uygulandı. Sadece MT4 daha akıllı.

Uyarı, yalnızca MQL5'te öncelikler farklı olduğu için verildi. Değil çünkü ...

Onlar. bir kavram var: "Daha önce MQL4'ün farklı olduğu yerlerde de uyarılara ihtiyaç duyulabilir". Böylece, Geliştiriciler önceki kusurlarını düzeltti ... başka bir şey değil

 
Derleyici, Excel'in eksik bir formül yazarken yaptığı gibi, parantezleri otomatik olarak "doğru" yerleştirmeyi teklif ederse daha uygun olurdu.