오류, 버그, 질문 - 페이지 1003 1...99699799899910001001100210031004100510061007100810091010...3184 새 코멘트 sion 2013.06.17 06:14 #10021 stringo : ts==true와 ts!=NULL은 완전히 다른 표현입니다. 뿐만 아니라 ts==true와 ts!=false도 다른 표현입니다. 어떻게 다른지 아십니까? 구문뿐만 아니라 의미론에서도 문제의 핵심은 ts가 배열이라는 것입니다. 그리고 왜 이것은 if(ts) 컴파일되고 위의 것은 컴파일되지 않습니다. Slava 2013.06.17 06:35 #10022 sion : 문제의 핵심은 ts가 배열이라는 것입니다. 그리고 왜 이것은 if(ts) 컴파일되고 위의 것은 컴파일되지 않습니다. if(ts) 문은 배열 객체 ts가 실제로 존재함을 의미합니다. 나는 특히 의미론에 대해 이야기했습니다. 이 케이스가 컴파일되지 않도록 하시겠습니까, 아니면 경고로 충분합니까? (그런데 경고가 있어야합니다. 경고가 없으면 이것은 우리의 결함입니다. 무언가가 끊어졌습니다) sion 2013.06.17 06:44 #10023 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 오류, 버그, 질문 스트링고 , 2013.06.17 06:35 if(ts) 문은 배열 객체 ts가 실제로 존재함을 의미합니다. 나는 특히 의미론에 대해 이야기했습니다. 이 사례가 컴파일되는 것을 방지하시겠습니까, 아니면 경고로 충분합니까? (그런데 경고가 있어야합니다. 경고가 없으면 이것은 우리의 결함입니다. 무언가가 끊어졌습니다) int ts[20];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(){} 2013.06.17 08:41:31 test_forum (EURUSD.e,M15) ts[0]=1 배열의 첫 번째 셀에서 작동하는 것처럼 보입니다. Errors, bugs, questions mql5 언어의 특징, 미묘함 mql4 언어의 기능, 미묘함 A100 2013.06.17 08:13 #10024 #import "Test.ex5" void A(); #import "5Test.ex5" void A(); #import "Test5.ex5" void A(); #import void B() { Test::A(); } //нормально void C() { Test5::A(); } //нормально void D() { 5 Test::A(); } //ошибка компиляции ServiceDesk는 식별자가 숫자로 시작할 수 없다는 사실을 참조하여 오류를 인식하지 못합니다. 그러나 5Test는 식별자가 아니라 파일 이름입니다. 그리고 파일 이름은 숫자로 시작할 수 있으며 #import .ex5 파일 이름에는 제한이 없습니다. Slava 2013.06.17 09:10 #10025 A100 : ServiceDesk는 식별자가 숫자로 시작할 수 없다는 사실을 참조하여 오류를 인식하지 못합니다. 그러나 5Test는 식별자가 아니라 파일 이름입니다. 그리고 파일 이름은 숫자로 시작할 수 있으며 #import .ex5 파일 이름에는 제한이 없습니다. 5Test::A - 둘 다 식별자가 아닌 최대. 그리고 파일 이름 5Test는 이 이름이 가져오기 절에서 따옴표로 묶인 한 인식됩니다(그런데 거기에 "5Test .ex5 "라고 작성했습니다) A100 2013.06.17 09:43 #10026 이것이 C/C++ 컴파일러가 파일/모듈에 있는 함수 이름의 내부 표현에 밑줄 문자(_)를 자동으로 추가하여 최종 이름 "_5TestA"가 숫자로 시작하지 않도록 하여 호환성을 보장하는 이유입니다. Slava 2013.06.17 09:52 #10027 A100 : 이것이 C/C++ 컴파일러가 파일/모듈에 있는 함수 이름의 내부 표현에 밑줄 문자(_)를 자동으로 추가하여 최종 이름 "_5TestA"가 숫자로 시작하지 않도록 하여 호환성을 보장하는 이유입니다. 일어난 대로, 그렇게 되었습니다. 진정해야 합니다. 이 시점에서 편집하는 것은 위험합니다. 컴파일러의 동작은 아무도 기뻐하지 않는 방식으로 변경될 수 있습니다. A100 2013.06.17 10:47 #10028 stringo : 이 시점에서 편집하는 것은 위험합니다. 컴파일러의 동작은 아무도 기뻐하지 않는 방식으로 변경될 수 있습니다. 동의한다. 다음 예를 참조하십시오. #define aX( X ) (X) void K() { int aX = 10 ; Print ( aX( 5 ) ); Print ( aX ); } // ошибка компиляции 비슷한 상황에 있는 C/C++ 컴파일러는 변수 aX를 매개변수 매크로 aX( X )와 구별할 만큼 충분히 똑똑합니다. 인라인 함수가 없는 경우 매개변수 매크로가 유일한 대안이며 이름이 큰 코드에서 종종 겹칠 수 있습니다. Slava 2013.06.17 10:57 #10029 A100 : 동의한다. 다음 예를 참조하십시오. 비슷한 상황에 있는 C/C++ 컴파일러는 변수 aX를 매개변수 매크로 aX( X )와 구별할 만큼 충분히 똑똑합니다. 치료사에게! (서비스 데스크로) Nikolai Karetnikov 2013.06.17 17:17 #10030 Rosh : 물론 바로 전날 그들은 다음과 같은 예를 발표했습니다. Demo_IndicatorSetInteger Demo_IndicatorSetDouble Demo_IndicatorSetString 고맙습니다! 당신의 도움으로 이해했습니다. 1...99699799899910001001100210031004100510061007100810091010...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
ts==true와 ts!=NULL은 완전히 다른 표현입니다.
뿐만 아니라
ts==true와 ts!=false도 다른 표현입니다.
어떻게 다른지 아십니까? 구문뿐만 아니라 의미론에서도
문제의 핵심은 ts가 배열이라는 것입니다. 그리고 왜 이것은 if(ts) 컴파일되고 위의 것은 컴파일되지 않습니다.
if(ts) 문은 배열 객체 ts가 실제로 존재함을 의미합니다. 나는 특히 의미론에 대해 이야기했습니다.
이 케이스가 컴파일되지 않도록 하시겠습니까, 아니면 경고로 충분합니까? (그런데 경고가 있어야합니다. 경고가 없으면 이것은 우리의 결함입니다. 무언가가 끊어졌습니다)
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
스트링고 , 2013.06.17 06:35
if(ts) 문은 배열 객체 ts가 실제로 존재함을 의미합니다. 나는 특히 의미론에 대해 이야기했습니다.
이 사례가 컴파일되는 것을 방지하시겠습니까, 아니면 경고로 충분합니까? (그런데 경고가 있어야합니다. 경고가 없으면 이것은 우리의 결함입니다. 무언가가 끊어졌습니다)
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는 식별자가 숫자로 시작할 수 없다는 사실을 참조하여 오류를 인식하지 못합니다.
그러나 5Test는 식별자가 아니라 파일 이름입니다. 그리고 파일 이름은 숫자로 시작할 수 있으며 #import .ex5 파일 이름에는 제한이 없습니다.
ServiceDesk는 식별자가 숫자로 시작할 수 없다는 사실을 참조하여 오류를 인식하지 못합니다.
그러나 5Test는 식별자가 아니라 파일 이름입니다. 그리고 파일 이름은 숫자로 시작할 수 있으며 #import .ex5 파일 이름에는 제한이 없습니다.
5Test::A - 둘 다 식별자가 아닌 최대.
그리고 파일 이름 5Test는 이 이름이 가져오기 절에서 따옴표로 묶인 한 인식됩니다(그런데 거기에 "5Test .ex5 "라고 작성했습니다)
이것이 C/C++ 컴파일러가 파일/모듈에 있는 함수 이름의 내부 표현에 밑줄 문자(_)를 자동으로 추가하여 최종 이름 "_5TestA"가 숫자로 시작하지 않도록 하여 호환성을 보장하는 이유입니다.
일어난 대로, 그렇게 되었습니다. 진정해야 합니다.
이 시점에서 편집하는 것은 위험합니다. 컴파일러의 동작은 아무도 기뻐하지 않는 방식으로 변경될 수 있습니다.
이 시점에서 편집하는 것은 위험합니다. 컴파일러의 동작은 아무도 기뻐하지 않는 방식으로 변경될 수 있습니다.
동의한다.
다음 예를 참조하십시오.
비슷한 상황에 있는 C/C++ 컴파일러는 변수 aX를 매개변수 매크로 aX( X )와 구별할 만큼 충분히 똑똑합니다.
인라인 함수가 없는 경우 매개변수 매크로가 유일한 대안이며 이름이 큰 코드에서 종종 겹칠 수 있습니다.
동의한다.
다음 예를 참조하십시오.
비슷한 상황에 있는 C/C++ 컴파일러는 변수 aX를 매개변수 매크로 aX( X )와 구별할 만큼 충분히 똑똑합니다.물론 바로 전날 그들은 다음과 같은 예를 발표했습니다.
고맙습니다! 당신의 도움으로 이해했습니다.