Hatalar, hatalar, sorular - sayfa 1003
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
ts==true ve ts!=NULL tamamen farklı ifadelerdir.
Üstelik
ts==true ve ts!=false da farklı ifadelerdir
Nasıl farklı olduklarını biliyor musun? Yalnızca söz diziminde değil, anlambilimde de
Sadece meselenin özü, ts'nin bir dizi olmasıydı. Ve neden bu if(ts) derlenir ve yukarıdakiler derlenmez.
if(ts) ifadesi, ts dizi nesnesinin gerçekten var olduğu anlamına gelir. Özellikle semantik hakkında konuştum.
Bu vakanın derlenmesini engellemek mi istiyorsunuz yoksa bir uyarı yeterli mi? (Bu arada bir uyarı olması lazım. Yok ise bu bizim kusurumuzdur, bir şeyler kopmuştur)
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
dizi , 2013.06.17 06:35
if(ts) ifadesi, ts dizi nesnesinin gerçekten var olduğu anlamına gelir. Özellikle semantik hakkında konuştum.
Bu vakanın derlenmesini engellemek mi istiyorsunuz yoksa bir uyarı yeterli mi? (Bu arada bir uyarı olması lazım. Yok ise bu bizim kusurumuzdur, bir şeyler kopmuştur)
void OnInit()
{
ts[0]=0;ts[1]=1;
if(ts)Print("ts[0]=0");
ts[0]=1;
if(ts)Print("ts[0]=1");
}
void OnTick()
{
}
ServiceDesk, tanımlayıcıların bir sayı ile başlayamayacağı gerçeğine atıfta bulunarak hatayı tanımıyor.
Ancak 5Test bir tanımlayıcı değil, bir dosya adıdır. Dosya adları bir sayı ile başlayabilir ve #import .ex5 dosya adlarında herhangi bir kısıtlama yoktu.
ServiceDesk, tanımlayıcıların bir sayı ile başlayamayacağı gerçeğine atıfta bulunarak hatayı tanımıyor.
Ancak 5Test bir tanımlayıcı değil, bir dosya adıdır. Dosya adları bir sayı ile başlayabilir ve #import .ex5 dosya adlarında herhangi bir kısıtlama yoktu.
5Test::A - en fazla ikisi de tanımlayıcı değildir.
Ve 5Test dosya adı, bu ad import yan tümcesinde tırnak içine alındığı sürece tanınır (bu arada, orada "5Test .ex5 " yazdınız)
Bu nedenle C/C++ derleyicileri, bir dosya/modüldeki bir işlev adının dahili temsiline otomatik olarak bir alt çizgi karakteri (_) ekler, böylece "_5TestA" son adı bir sayı ile başlamaz, bu da uyumluluk sağlar.
Nasıl olduysa öyle oldu. Sakinleşmelisin.
Bu noktada düzenleme yapmak tehlikelidir - derleyicinin davranışı, kimsenin sevinemeyeceği şekilde değiştirilebilir.
Bu noktada düzenleme yapmak tehlikelidir - derleyicinin davranışı, kimsenin sevinemeyeceği şekilde değiştirilebilir.
Kabul ediyorum.
Lütfen şu örneğe bakın:
Benzer bir durumda C/C++ derleyicisi, aX değişkenini aX( X ) parametrik makrosundan ayırt edecek kadar akıllıdır.
Satır içi işlevlerin yokluğunda, parametrik makrolar tek alternatiftir ve adlar genellikle büyük kodlarda çakışabilir.
Kabul ediyorum.
Lütfen şu örneğe bakın:
Benzer bir durumda C/C++ derleyicisi, aX değişkenini aX( X ) parametrik makrosundan ayırt edecek kadar akıllıdır.Tabii ki, daha geçen gün örnekler yayınladılar:
Teşekkür ederim! Yardımınızla anlaşıldı.