mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 150

 
Denis Kirichenko :

그는. 로그에서 항목을 하나만 가져왔습니다. 완전한 것은 다음과 같습니다.

그런 다음 마지막 줄이 어디에서 왔는지 이해하지 못합니다.

 
fxsaber :

그런 다음 마지막 줄이 어디에서 왔는지 이해하지 못합니다.

"편집" 컨텍스트 메뉴를 선택한 후 내비게이터는 ex5와 동일한 경로에서 소스 mq5를 찾을 수 없습니다.

ex5가 mq5가 있는 Shared Projects의 scripts 폴더로 이동되었기 때문에

수정합시다. 테스터 설정 과 동일한 스마트 검색을 해보자

 
fxsaber :

감사합니다. 좋은 규칙입니다. 나는 나 자신의 무능함의 희생양이 되었다. 사실, 그러한 더 분명한 경우에는 더 많은 규칙이 필요합니다.


Warning smart는 두 경우 모두에 대해 수행할 수 있습니까?

여기에 컴파일 오류 가 있어야 합니다.
 
Alexey Navoykov :
여기에 컴파일 오류 가 있어야 합니다.
어서 해봐요. 무슨 근거로? delete는 포인터 값을 변경하지 않으므로 constness 위반이 없습니다. 따라서 컴파일러에 대한 불만은 없으며 모든 것이 명확합니다.
 
Vladimir Simakov :
어서 해봐요. 무슨 근거로? delete는 포인터 값을 변경하지 않으므로 constness 위반이 없습니다. 따라서 컴파일러에 대한 불만은 없으며 모든 것이 명확합니다.
두 번째 예에 대해 말하면
 
Alexey Navoykov :
두 번째 예에 대해 말하면
 void f( const int i )
{
   static const int j = i;
  
   Print (j);
}

void OnStart ()
{
  f( 1 ); // 1
  f( 2 ); // 1
}

정적 변수의 초기화는 첫 번째 호출에서 진행됩니다.
 
fxsaber :

정적 변수의 초기화는 첫 번째 호출에서 진행됩니다.
권리? 내일 테스트가 필요합니다. 문서에서는 다음과 같이 말합니다. 정적 변수는 프로그램이 실행되는 순간부터 존재하며 특수화된 OnInit() 함수를 호출하기 전에 한 번 초기화됩니다 . 초기 값을 지정하지 않으면 정적 스토리지 클래스의 변수는 초기 값을 0으로 취합니다.

당신이 쓸 때 부두의 작가는 치열한 잼입니다.
 
Vladimir Simakov :
... 쓰다보면 부두의 작가가 맹렬한 잼이다.
부두의 작가는 한때 올바르게 썼습니다. 정적 변수는 로컬 값으로 초기화할 수 없습니다.
이것이 실제로 Mql에서 컴파일된다면 분명히 이 버그는 1년 전에 수행된 정적 변수의 초기화 순서를 수정할 때 발생했습니다.
 
Alexey Navoykov :
부두의 작가는 한 번 올바르게 썼습니다. 정적 변수는 로컬 값으로 초기화할 수 없습니다.
지금 Mql에서 실제로 컴파일된다면 이것은 분명히 1년 전에 수행된 정적 변수의 초기화를 수정할 때 발생한 버그입니다.
또는 C ++ 표준으로 가져오면 이 경우에는 이미 부두에 잼이 있습니다. 이제 머리를 모아 커피를 마시고 확인하겠습니다.
 

개발자. 설명이 필요합니다. 무엇을 믿어야 할까요? 문서 또는 구현? 지금까지 정의되지 않은 동작이 얻어졌습니다.

@fxsaber , 공식 설명 전에 사용을 권하지 않습니다. 갑자기 가져 와서 고칠 것입니다.

사유: