오류, 버그, 질문 - 페이지 2891

 
A100 :

컴파일러에 객관적으로 정보가 없는 경우일 수 있습니다.

저것들. 아마도 f()가 i를 초기화했을 수도 있고 아닐 수도 있습니다. 그리고 여기서 C++ 컴파일러는 경고를 제공하지만 어떤 이유로 MQL은

C++에서는 메모리 셀의 주소가 숨겨지지 않으므로 변수는 가비지로 초기화됩니다.
Mql에서 메모리 셀의 주소는 숨겨져 사용할 수 없습니다. 여기서는 Mql 개발자로서 컴파일러에서 까다로웠습니다))

요컨대, 항상 변수를 초기화하면 두통이 없을 것입니다.
 
Roman :

예, 하지만 첫 번째 반복 전에 변수 j가 아직 초기화되지 않았으며 컴파일러는 이에 대해 맹세합니다.

이 변수가 사용되지 않거나 할당 i=j가 루프 본문 아래에 놓이면 첫 번째 옵션의 실행과 동일하게 될 것이고 경고는 없을 것입니다. 컴파일러는 루프 로직과 실행 순서를 확인하지 않고 구문을 위에서 아래로 확인합니다. 그렇게 생각합니다. 잘 모르겠습니다.)

 
사이트 검색 서비스에 오류가 있습니다. 이러한 검색이 결과 를 반환하지 않습니다.
 

fxsaber :

그리고 다른 상황에서.

대신 답변을 누르고 터미널을 다운로드하십시오 - 세련된 혁신

 
컴파일 중 오류:
 #define MACRO(X)\ // Error: '\' - unexpected in macro definition
              X
 
TheXpert :

대신 답변을 누르고 터미널을 다운로드하십시오 - 세련된 혁신

이것은 모두 같은 열매 분야입니다 ... 그리고 여기에서 거의 두들겨 맞았던 질문으로 (하나의 드롭 다운 메뉴에서 지갑과 읽지 않은 주제는 쌍둥이 형제입니다), 그리고 당신과 (나는 어떻게 누군지 몰라) 나에게는 그런 ... "기능"이 있습니다

이 비문으로 무엇을해야합니까? 누가 왜 왜 묻는지 볼 수 있는 링크가 어디에도 없습니다(지갑에 있을 수 있지만 나는 거기에서 보지 않았습니다).

사이트의 이러한 "훌륭한" 변경 사항은 모두 한 사람에 의해 이루어졌다는 인상이 매우 강합니다. .... 그리고 개인적으로. 그가 자신에게 적합하다고 생각하는 방식입니다. 그리고 우리의 의견으로는 그는 재채기를하고 싶었습니다 ...

 
Сергей Таболин :

이 비문으로 무엇을해야합니까?

Xs, 일반 적용 시 이 비문이 사라집니다.
 

거래 계정 REASON_ACCOUNT 를 변경할 때 사물의 논리에 따라 이전 계정을 받고 작업을 완료할 것으로 예상되었지만 아니요, 계정이 변경된 경우 이미 REASON_ACCOUNT와 함께 초기화되지 않은 상태에서 새 번호를 얻습니다. .

논리적으로 프로그램은 현재 데이터로 작업을 끝내고 새 호출에서 이미 새 데이터를 전송하고 작업 과정에서 데이터를 변경하지 않아야 합니다...

 
Vladimir Pastushak :

거래 계정 REASON_ACCOUNT 를 변경할 때 사물의 논리에 따라 이전 계정을 받고 작업을 완료할 것으로 예상되었지만 아니요, 계정이 변경된 경우 이미 REASON_ACCOUNT와 함께 초기화되지 않은 상태에서 새 번호를 얻습니다. .

논리적으로 프로그램은 현재 데이터로 작업을 끝내고 새 호출에서 이미 새 데이터를 전송하고 작업 과정에서 데이터를 변경하지 않아야 합니다...

다음은 잘못된 동작을 보여주는 코드입니다.

 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   Print ( "Start " , ( string ) AccountInfoInteger ( ACCOUNT_LOGIN ));
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   if (reason == REASON_ACCOUNT )
       Print ( "Stop " , ( string ) AccountInfoInteger ( ACCOUNT_LOGIN ));
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---

  }
//+------------------------------------------------------------------+

결과

 2020.10 . 28 17 : 23 : 05.725 Test (EURUSD,M1)        Stop 600 ....
2020.10 . 28 17 : 23 : 06.306 Test (EURUSD,M1)        Start 600 ....
2020.10 . 28 17 : 23 : 17.478 Test (EURUSD,M1)        Stop 535 ....
2020.10 . 28 17 : 23 : 18.156 Test (EURUSD,M1)        Start 535 ....
 
Vladimir Pastushak :

거래 계정 REASON_ACCOUNT 를 변경할 때 사물의 논리에 따라 이전 계정을 받고 작업을 완료할 것으로 예상되었지만 아니요, 계정이 변경된 경우 이미 REASON_ACCOUNT와 함께 초기화되지 않은 상태에서 새 번호를 얻습니다. .

논리적으로 프로그램은 현재 데이터로 작업을 끝내고 새 호출에서 이미 새 데이터를 전송하고 작업 과정에서 데이터를 변경하지 않아야 합니다...

이것은 오류가 아니므로 동작이 변경되지 않습니다. 이 기능만 알아두세요.

사유: