오류, 버그, 질문 - 페이지 2761 1...275427552756275727582759276027612762276327642765276627672768...3184 새 코멘트 Igor Makanu 2020.05.31 10:17 #27601 Aleksey Mavrin : 0xFF는 아마도 컴파일러를 4바이트로 바꿉니다. 아니요, 하지만 올바르게 초기화됩니다. 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 12:16 #27602 좋은 오후, 문제를 해결하는 방법: 최적화할 때 오류가 나타납니다. 2020.05.31 15:05:32.738 코어 7 0:00:00.153에서 "OnTick 기능 의 중요한 런타임 오류 503(제로 나누기, 모듈 Experts\e1.ex5, 파일 e1.mq5, 줄 826, 열 73)" 오류로 테스트된 유전자 패스(0, 53) 더블 믹스1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1])), 2); 더블 믹스2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2); 더블 믹스 = NormalizeDouble((Mix1/Mix2),2); 당신은 무엇을하고 있었습니까? 1) Mix1과 Mix2를 곱하여 소수점 이하 자릿수를 줄입니다. 2) 정규화 중에 문자 수를 변경했습니다. 3) 모든 ZExtLevel은 0이 포함되어 있지 않은지 확인했습니다. Errors, bugs, questions MQL5 마법사 및 표준 'CopyTicks' 테스트 Aleksey Mavrin 2020.05.31 12:21 #27603 Igor Makanu : 아니요, 하지만 올바르게 초기화됩니다. 왜 안 된다고 확신합니까? 기본적으로 정수는 나타냅니다. sizeof는 이것을 말합니다 Vladimir Simakov 2020.05.31 12:26 #27604 Aleksey Mavrin : 왜 안 된다고 확신합니까? 기본적으로 정수는 나타냅니다. sizeof는 이것을 말합니다 정확히는 uint. Igor Makanu 2020.05.31 12:30 #27605 Aleksey Mavrin : 왜 안 된다고 확신합니까? 기본적으로 정수는 나타냅니다. sizeof는 이것을 말합니다 경고없이 작동합니까? char c[ 16 ]; ArrayInitialize (c, 127 ); 해당 ArrayInitialize 서명이 있기 때문에 int ArrayInitialize( char array[], // инициализируемый массив char value // значение, которое будет установлено ); 그리고 서명되지 않은 uchar의 경우 알 수 없는 이유로 ArrayInitialize()를 수행하지 않았습니다. Aleksey Mavrin 2020.05.31 12:36 #27606 Igor Makanu : 경고없이 작동합니까? 해당 ArrayInitialize 서명이 있기 때문에 그리고 서명되지 않은 uchar의 경우 알 수 없는 이유로 ArrayInitialize()를 수행하지 않았습니다. 서명이나 부재에 관한 것이 아닙니다. 사실은 4바이트가 1로 변환되고 정보가 이론적으로 손실될 수 있다는 것입니다. 컴파일러는 이에 대해 경고합니다. ArrayInitialize (c, (char)10000 ); 또한 경고가있을 것입니다 Igor Makanu 2020.05.31 13:02 #27607 Aleksey Mavrin : 서명이나 부재에 관한 것이 아닙니다. 사실은 4바이트가 1로 변환되고 정보가 이론적으로 손실될 수 있다는 것입니다. 컴파일러는 이에 대해 경고합니다. ArrayInitialize (c, (char)10000 ); 경고도 있을 것이다 네, 분명 처음에는 그랬습니다. 여기서 질문이 다릅니다. char가 실제로 필요한 곳입니까? StringToCharArray() 및 CryptEncode()에서 uchar를 사용하고 도움말을 살펴보면 여전히 그래서 ArrayInitialize를 사용하여 char 배열을 초기화할 수 있지만 uchar는 사용할 수 없습니다. 오케이 holivar 귀족이 밝혀졌습니다. 나는 무언가가 바뀔지 의심 스럽습니다.) 추신: 0xFF = 255(1바이트) Alain Verleyen 2020.05.31 13:09 #27608 Igor Makanu : 네, 그것이 처음부터 모든 것이었음이 분명합니다 여기에 질문이 다릅니다. 이것이 char가 실제로 필요한 곳입니까? StringToCharArray() 및 CryptEncode()에서 uchar를 사용하고 도움말을 살펴보면 여전히 그래서 ArrayInitialize를 사용하여 char 배열을 초기화할 수 있지만 uchar는 초기화할 수 없습니다. 좋아, 고귀한 holivar가 밝혀졌습니다. 나는 무언가가 바뀔 것이라고 의심합니다.) 추신: 0xFF = 255(1바이트) ArrayInitialize (uc,( char ) 0xFF ); // truncation of constant value Aleksey Mavrin 2020.05.31 13:10 #27609 Igor Makanu : 예, 이것이 원래 있었던 것이 분명합니다. 여기서 질문이 다릅니다. char가 실제로 필요한 곳입니까? StringToCharArray() 및 CryptEncode()에서 uchar를 사용하고 도움말을 살펴보면 여전히 그래서 ArrayInitialize를 사용하여 char 배열을 초기화 할 수 있지만 uchar를 초기화할 수는 없습니다. 오케이 holivar 귀족이 밝혀졌습니다. 나는 무언가가 바뀔지 의심 스럽습니다.) 추신: 0xFF = 255(1바이트) 왜 못하시는지 이해가 안됩니다. uchar를 사용하면 모든 것이 char와 동일하게 작동합니다. 처음에 경고 이유를 물었습니다. 1에 4바이트가 있기 때문입니다. 그리고 255의 값은 전혀 중요하지 않습니다. 0과 1은 1과 2, 4와 8바이트 모두 동일할 수 있음) Igor Makanu 2020.05.31 13:27 #27610 Alain Verleyen : ArrayInitialize (uc,( char ) 0xFF ); 확인: 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 알겠습니다. 컴파일러 경고 없이 작동합니다. 감사해요 1...275427552756275727582759276027612762276327642765276627672768...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
0xFF는 아마도 컴파일러를 4바이트로 바꿉니다.
아니요, 하지만 올바르게 초기화됩니다.
좋은 오후, 문제를 해결하는 방법:
최적화할 때 오류가 나타납니다.
2020.05.31 15:05:32.738 코어 7 0:00:00.153에서 "OnTick 기능 의 중요한 런타임 오류 503(제로 나누기, 모듈 Experts\e1.ex5, 파일 e1.mq5, 줄 826, 열 73)" 오류로 테스트된 유전자 패스(0, 53)
더블 믹스1 = NormalizeDouble((MathAbs(ZExtLevel[0] - ZExtLevel[1])), 2);
더블 믹스2 = NormalizeDouble((MathAbs(ZExtLevel[1] - ZExtLevel[2])), 2);
더블 믹스 = NormalizeDouble((Mix1/Mix2),2);
당신은 무엇을하고 있었습니까?
1) Mix1과 Mix2를 곱하여 소수점 이하 자릿수를 줄입니다.
2) 정규화 중에 문자 수를 변경했습니다.
3) 모든 ZExtLevel은 0이 포함되어 있지 않은지 확인했습니다.
아니요, 하지만 올바르게 초기화됩니다.
왜 안 된다고 확신합니까? 기본적으로 정수는 나타냅니다. sizeof는 이것을 말합니다
왜 안 된다고 확신합니까? 기본적으로 정수는 나타냅니다. sizeof는 이것을 말합니다
정확히는 uint.
왜 안 된다고 확신합니까? 기본적으로 정수는 나타냅니다. sizeof는 이것을 말합니다
경고없이 작동합니까?
해당 ArrayInitialize 서명이 있기 때문에
그리고 서명되지 않은 uchar의 경우 알 수 없는 이유로 ArrayInitialize()를 수행하지 않았습니다.
경고없이 작동합니까?
해당 ArrayInitialize 서명이 있기 때문에
그리고 서명되지 않은 uchar의 경우 알 수 없는 이유로 ArrayInitialize()를 수행하지 않았습니다.
서명이나 부재에 관한 것이 아닙니다. 사실은 4바이트가 1로 변환되고 정보가 이론적으로 손실될 수 있다는 것입니다. 컴파일러는 이에 대해 경고합니다.
ArrayInitialize (c, (char)10000 );
또한 경고가있을 것입니다
서명이나 부재에 관한 것이 아닙니다. 사실은 4바이트가 1로 변환되고 정보가 이론적으로 손실될 수 있다는 것입니다. 컴파일러는 이에 대해 경고합니다.
ArrayInitialize (c, (char)10000 );
경고도 있을 것이다
네, 분명 처음에는 그랬습니다.
여기서 질문이 다릅니다. char가 실제로 필요한 곳입니까?
StringToCharArray() 및 CryptEncode()에서 uchar를 사용하고 도움말을 살펴보면 여전히
그래서 ArrayInitialize를 사용하여 char 배열을 초기화할 수 있지만 uchar는 사용할 수 없습니다.
오케이 holivar 귀족이 밝혀졌습니다. 나는 무언가가 바뀔지 의심 스럽습니다.)
추신: 0xFF = 255(1바이트)
네, 그것이 처음부터 모든 것이었음이 분명합니다
여기에 질문이 다릅니다. 이것이 char가 실제로 필요한 곳입니까?
StringToCharArray() 및 CryptEncode()에서 uchar를 사용하고 도움말을 살펴보면 여전히
그래서 ArrayInitialize를 사용하여 char 배열을 초기화할 수 있지만 uchar는 초기화할 수 없습니다.
좋아, 고귀한 holivar가 밝혀졌습니다. 나는 무언가가 바뀔 것이라고 의심합니다.)
추신: 0xFF = 255(1바이트)
예, 이것이 원래 있었던 것이 분명합니다.
여기서 질문이 다릅니다. char가 실제로 필요한 곳입니까?
StringToCharArray() 및 CryptEncode()에서 uchar를 사용하고 도움말을 살펴보면 여전히
그래서 ArrayInitialize를 사용하여 char 배열을 초기화 할 수 있지만 uchar를 초기화할 수는 없습니다.
오케이 holivar 귀족이 밝혀졌습니다. 나는 무언가가 바뀔지 의심 스럽습니다.)
추신: 0xFF = 255(1바이트)
왜 못하시는지 이해가 안됩니다. uchar를 사용하면 모든 것이 char와 동일하게 작동합니다.
처음에 경고 이유를 물었습니다. 1에 4바이트가 있기 때문입니다. 그리고 255의 값은 전혀 중요하지 않습니다. 0과 1은 1과 2, 4와 8바이트 모두 동일할 수 있음)
Alain Verleyen :
확인:
알겠습니다. 컴파일러 경고 없이 작동합니다.
감사해요