Hatalar, hatalar, sorular - sayfa 2761 1...275427552756275727582759276027612762276327642765276627672768...3184 Yeni yorum Igor Makanu 2020.05.31 12:17 #27601 Aleksey Mavrin : 0xFF muhtemelen derleyiciyi 4 bayta çevirir. hayır, ancak doğru şekilde başlatılıyor uchar uc[ 16 ]; ArrayInitialize (uc,( uchar ) 0xFF ); // truncation of constant value ArrayPrint (uc); // 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 Ivan Syzrantsev 2020.05.31 14:16 #27602 İyi günler, sorun nasıl çözülür: Optimize ederken bir hata çıkıyor: 2020.05.31 15:05:32.738 çekirdek 7 genetik geçiş (0, 53), 0:00:00.153'te "OnTick işlevinde (sıfır bölme, Experts\e1.ex5, dosya e1.mq5, satır 826, sütun 73) kritik çalışma zamanı hatası 503" hatasıyla test edildi double Mix1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1])), 2); double Mix2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2); double Mix = NormalizeDouble((Mix1/Mix2),2); Nerelerdeydin: 1) ondalık basamak sayısını azaltmak için Mix1 ve Mix2'yi çarpar; 2) normalleştirme sırasında karakter sayısını değiştirdi; 3) Tüm ZExtLevel, 0 içermediklerini kontrol etti. Errors, bugs, questions Uzman Danışmanınızı optimize edin Yeni başlayanlardan sorular MQL5 Aleksey Mavrin 2020.05.31 14:21 #27603 Igor Makanu : hayır, ancak doğru şekilde başlatılıyor Neden emin değilsin? Varsayılan olarak, bir tamsayı temsil eder. sizeof bunu söylüyor Vladimir Simakov 2020.05.31 14:26 #27604 Aleksey Mavrin : Neden emin değilsin? Varsayılan olarak, bir tamsayı temsil eder. sizeof bunu söylüyor uint, daha doğrusu. Igor Makanu 2020.05.31 14:30 #27605 Aleksey Mavrin : Neden emin değilsin? Varsayılan olarak, bir tamsayı temsil eder. sizeof bunu söylüyor ayrıca uyarılar olmadan çalışır? char c[ 16 ]; ArrayInitialize (c, 127 ); karşılık gelen bir ArrayInitialize imzası olduğundan int ArrayInitialize( char array[], // инициализируемый массив char value // значение, которое будет установлено ); ve imzasız bir uchar için bilinmeyen bir nedenden dolayı ArrayInitialize() yapmadılar Aleksey Mavrin 2020.05.31 14:36 #27606 Igor Makanu : ayrıca uyarılar olmadan çalışır? karşılık gelen bir ArrayInitialize imzası olduğundan ve imzasız bir uchar için bilinmeyen bir nedenden dolayı ArrayInitialize() yapmadılar İmza ya da yokluğuyla ilgili değil. Gerçek şu ki, 4 bayt 1'e dönüştürülür, bilgi teorik olarak kaybolabilir, derleyici bu konuda uyarır. ArrayInitialize'ı deneyin (c, (char)10000 ); ayrıca bir uyarı olacak Yeni başlayanlardan sorular MQL4 5 wmz için bir MQL4 ve MQL5 ile Igor Makanu 2020.05.31 15:02 #27607 Aleksey Mavrin : İmza ya da yokluğuyla ilgili değil. Gerçek şu ki, 4 bayt 1'e dönüştürülür, bilgi teorik olarak kaybolabilir, derleyici bu konuda uyarır. ArrayInitialize (c, (char)10000 ) deneyin; ayrıca bir uyarı olacak Evet, bunun orijinal olduğu açık burada soru farklı, char'ın gerçekten gerekli olduğu yer burası mı? ve uchar'ı StringToCharArray() ve CryptEncode() içinde kullanıyorum ve yardımı gözden geçirirseniz hala bu yüzden ArrayInitialize kullanarak bir char dizisini başlatabilirim, ancak uchar kullanamıyorum tamam holivar asil çıktı, bir şeylerin değişeceğinden şüpheliyim;) Not: 0xFF = 255 (1 bayt) [17.03.2008 tarihinden itibaren arşivlendi] MQL: güvenlik ve özellikler Optimum hareketli ortalama Alain Verleyen 2020.05.31 15:09 #27608 Igor Makanu : evet her şeyin başından beri olduğu açık burada soru farklı, char'a gerçekten ihtiyaç duyulan yer burası mı? StringToCharArray() ve CryptEncode() içinde uchar kullanıyorum ve yardımı gözden geçirirseniz hala bu yüzden ArrayInitialize kullanarak bir char dizisini başlatabilirim, ancak uchar yapamıyor tamam, asil holivar çıktı, bir şeylerin değişeceğinden şüpheliyim;) Not: 0xFF = 255 (1 bayt) ArrayInitialize (uc,( char ) 0xFF ); // truncation of constant value Aleksey Mavrin 2020.05.31 15:10 #27609 Igor Makanu : Evet, bunun orijinal olduğu açık burada soru farklı, char'ın gerçekten gerekli olduğu yer burası mı? ve uchar'ı StringToCharArray() ve CryptEncode() içinde kullanıyorum ve yardımı gözden geçirirseniz hala bu yüzden ArrayInitialize kullanarak bir char dizisini başlatabilirim, ancak bir uchar başlatamıyorum tamam holivar asil çıktı, bir şeylerin değişeceğinden şüpheliyim;) Not: 0xFF = 255 (1 bayt) Neden yapamıyorsun anlamıyorum. uchar ile her şey char ile aynı şekilde çalışır. İlk başta uyarının nedenini sordunuz, çünkü 1'de 4 bayt ve 255 değeri hiç önemli değil. ve 0 ve bir hem 1 hem de 2 ve 4 ve 8 bayt aynı olabilir) Çaydanlıktan gelen sorular mql4'te yığın taşması hatasına Sondaki TP Igor Makanu 2020.05.31 15:27 #27610 Alain Verleyen : ArrayInitialize (uc,( char ) 0xFF ); kontrol: uchar uc[ 16 ]; ArrayInitialize (uc, ( char ) 0xFF ); ArrayPrint (uc); 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 Tamam, derleyici uyarıları olmadan çalışır teşekkürler 1...275427552756275727582759276027612762276327642765276627672768...3184 Yeni yorum
0xFF muhtemelen derleyiciyi 4 bayta çevirir.
hayır, ancak doğru şekilde başlatılıyor
İyi günler, sorun nasıl çözülür:
Optimize ederken bir hata çıkıyor:
2020.05.31 15:05:32.738 çekirdek 7 genetik geçiş (0, 53), 0:00:00.153'te "OnTick işlevinde (sıfır bölme, Experts\e1.ex5, dosya e1.mq5, satır 826, sütun 73) kritik çalışma zamanı hatası 503" hatasıyla test edildi
double Mix1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1])), 2);
double Mix2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2);
double Mix = NormalizeDouble((Mix1/Mix2),2);
Nerelerdeydin:
1) ondalık basamak sayısını azaltmak için Mix1 ve Mix2'yi çarpar;
2) normalleştirme sırasında karakter sayısını değiştirdi;
3) Tüm ZExtLevel, 0 içermediklerini kontrol etti.
hayır, ancak doğru şekilde başlatılıyor
Neden emin değilsin? Varsayılan olarak, bir tamsayı temsil eder. sizeof bunu söylüyor
Neden emin değilsin? Varsayılan olarak, bir tamsayı temsil eder. sizeof bunu söylüyor
uint, daha doğrusu.
Neden emin değilsin? Varsayılan olarak, bir tamsayı temsil eder. sizeof bunu söylüyor
ayrıca uyarılar olmadan çalışır?
karşılık gelen bir ArrayInitialize imzası olduğundan
ve imzasız bir uchar için bilinmeyen bir nedenden dolayı ArrayInitialize() yapmadılar
ayrıca uyarılar olmadan çalışır?
karşılık gelen bir ArrayInitialize imzası olduğundan
ve imzasız bir uchar için bilinmeyen bir nedenden dolayı ArrayInitialize() yapmadılar
İmza ya da yokluğuyla ilgili değil. Gerçek şu ki, 4 bayt 1'e dönüştürülür, bilgi teorik olarak kaybolabilir, derleyici bu konuda uyarır.
ArrayInitialize'ı deneyin (c, (char)10000 );
ayrıca bir uyarı olacak
İmza ya da yokluğuyla ilgili değil. Gerçek şu ki, 4 bayt 1'e dönüştürülür, bilgi teorik olarak kaybolabilir, derleyici bu konuda uyarır.
ArrayInitialize (c, (char)10000 ) deneyin;
ayrıca bir uyarı olacak
Evet, bunun orijinal olduğu açık
burada soru farklı, char'ın gerçekten gerekli olduğu yer burası mı?
ve uchar'ı StringToCharArray() ve CryptEncode() içinde kullanıyorum ve yardımı gözden geçirirseniz hala
bu yüzden ArrayInitialize kullanarak bir char dizisini başlatabilirim, ancak uchar kullanamıyorum
tamam holivar asil çıktı, bir şeylerin değişeceğinden şüpheliyim;)
Not: 0xFF = 255 (1 bayt)
evet her şeyin başından beri olduğu açık
burada soru farklı, char'a gerçekten ihtiyaç duyulan yer burası mı?
StringToCharArray() ve CryptEncode() içinde uchar kullanıyorum ve yardımı gözden geçirirseniz hala
bu yüzden ArrayInitialize kullanarak bir char dizisini başlatabilirim, ancak uchar yapamıyor
tamam, asil holivar çıktı, bir şeylerin değişeceğinden şüpheliyim;)
Not: 0xFF = 255 (1 bayt)
Evet, bunun orijinal olduğu açık
burada soru farklı, char'ın gerçekten gerekli olduğu yer burası mı?
ve uchar'ı StringToCharArray() ve CryptEncode() içinde kullanıyorum ve yardımı gözden geçirirseniz hala
bu yüzden ArrayInitialize kullanarak bir char dizisini başlatabilirim, ancak bir uchar başlatamıyorum
tamam holivar asil çıktı, bir şeylerin değişeceğinden şüpheliyim;)
Not: 0xFF = 255 (1 bayt)
Neden yapamıyorsun anlamıyorum. uchar ile her şey char ile aynı şekilde çalışır.
İlk başta uyarının nedenini sordunuz, çünkü 1'de 4 bayt ve 255 değeri hiç önemli değil. ve 0 ve bir hem 1 hem de 2 ve 4 ve 8 bayt aynı olabilir)
Alain Verleyen :
kontrol:
Tamam, derleyici uyarıları olmadan çalışır
teşekkürler