class A { public :
int m;
A() { Alert ( "A" ); m= 1 ; }
};
class B { public :
B() { Alert ( "B" ); static A a; Alert ( "a.m==" ,a.m); Alert ( "&a==" ,&a);}
};
B b;
voidOnStart ()
{
};
실행되면 다음과 같은 경고 순서가 표시됩니다.
비 오전==0 &a==0 ㅏ
저것들. 정적 변수는 액세스할 때까지 아직 초기화되지 않았습니다. 포인터도 null입니다. 그녀의 유형은 뛰어 넘고 안전하게 이동했습니다.
그런 혼란이 없어야합니다. 변수를 초기화하고 계속 진행하거나 오류와 함께 컴파일을 중단합니다.
물론 여기서 초기화해야 합니다. 그러나 상호 참조 클래스에서 재귀가 형성되는 경우 컴파일을 중지해야 합니다.
솔루션을 제공해 주셔서 대단히 감사합니다. 모든 것이 작동합니다.
전체 어레이 파일을 메모리로 읽은 다음 작업하는 것이 훨씬 더 빠릅니다. 가속은 몇 배 더 빠릅니다.
어레이가 있는 파일을 어드바이저에 연결하는 방법은 무엇입니까?
먼저 스크립트는 배열을 작성합니다.
어드바이저에 다음 파일을 포함합니다.
컴파일할 때 오류:
'????????????????????????????????????...' - 식별자가 너무 깁니다. mas.dat 하나 하나
' ' - 알 수 없는 기호 mas.dat 하나 3015
정적 변수 에 대한 심각한 버그. 다음 코드를 고려하십시오.
실행되면 다음과 같은 경고 순서가 표시됩니다.
비
오전==0
&a==0
ㅏ
저것들. 정적 변수는 액세스할 때까지 아직 초기화되지 않았습니다. 포인터도 null입니다. 그녀의 유형은 뛰어 넘고 안전하게 이동했습니다.
그런 혼란이 없어야합니다. 변수를 초기화하고 계속 진행하거나 오류와 함께 컴파일을 중단합니다.
물론 여기서 초기화해야 합니다. 그러나 상호 참조 클래스에서 재귀가 형성되는 경우 컴파일을 중지해야 합니다.
어레이가 있는 파일을 어드바이저에 연결하는 방법은 무엇입니까?
먼저 스크립트는 배열을 작성합니다.
어드바이저에 다음 파일을 포함합니다.
컴파일할 때 오류:
'????????????????????????????????????...' - 식별자가 너무 깁니다. mas.dat 하나 하나
' ' - 알 수 없는 기호 mas.dat 하나 3015
스크립트는 데이터 바이트를 포함하는 uchar 유형의 배열을 포함하는 mas.mqh 파일을 생성해야 합니다. 예를 들어 파일 크기가 3바이트인 경우 mas.mqh 파일의 내용은 다음과 같아야 합니다.
생성된 대량 배열은 프로그램에서 사용해야 하는 것입니다.
최적화 프로그램에서 파일을 수만 번 열고 읽고 닫을 필요가 없다고 생각합니다.
기록 데이터의 디버깅 모드 에서 MQLInfoInteger(MQL_VISUAL_MODE)는 항상 true를 반환합니다.