OOP, mql5의 템플릿 및 매크로, 미묘함 및 사용 기술 - 페이지 19

 
Seric29 :

이 매크로는 무효가 됩니다. 결과를 반환하려면 계산할 표현식이 필요합니다. 즉, 내부에서 함수를 호출해야 한다는 결론에 도달했습니다.

예, 먼저 이 "놀라운" 코드를 컴파일해 보십시오. 여기서 어떤 남자들은 현실에서 탈피하여 매우 격렬하게 상상합니다.

 
Vict :

작업이 무엇인지, 거기에서 파고 있는지 여부는 모르겠지만 다른 접근 방식은 다음과 같습니다.

따라서 함수의 모든 부분을 교체하고(나처럼 배열을 채울 필요는 없음) 원하는 형식으로 인스턴스화할 수 있습니다.

일종의 폰토브냐. 코드를 먼저 살펴보고 다음과 같이 생각합니다. 음, 배열은 아마도 함수에 전달되거나 이 값으로 조정된 숫자로 채워질 것입니다... 하지만 결과는...

 
Dmitry Fedoseev :

일종의 폰토브냐. 코드를 먼저 살펴보고 다음과 같이 생각합니다. 음, 배열은 아마도 함수에 전달되거나 이 값으로 조정된 숫자로 채워질 것입니다... 하지만 결과는...

난 감동하지 않아, 알았어, 난 f****.

 
Vict :

특정 문제를 해결하기 위해 하위 알고리즘, 말하자면 "날카롭게" 할 수 있는 알고리즘이 있습니다. 사실상 가상 기능의 아날로그. 당신은 자신이 가장 중요한 것을 요구했지만 지금은 이유를 모릅니다.)) 프레임이 있었고 그 안에 루프가 미끄러졌습니다.

이 프레임워크에 코드를 추가하여 이 모든 것이 결과를 반환하고 내 프레임워크가 무효로 작동하도록 하고 싶었습니다. 다른 차원의 배열로 작업하려면 필요합니다.

 
Vict :

다른 함수에 대한 포인터를 전달하는 함수 호출 (예: 루프 본문)

 int for3( int a, int b, int c, void (*loop)()) {
         for ( int i= 0 ; i<a; i++)
                 for ( int j= 0 ; j<b; j++)
                         for ( int k= 0 ; k<c; k++) 
                                loop();
         return 4 ;
}


mql4는 함수 포인터와 함께 작동하지 않으며 개발자도 그렇게 하지 않았습니다.

여기 내가 찾은 것이 있습니다

 typedef int (*MyFuncType)( int , int );

int addition ( int a, int b)
{ return (a+b); }

int subtraction ( int a, int b)
{ return (a-b); }

int operation ( int x, int y, MyFuncType myfunc)
{
   int g;
   g = myfunc(x,y);
   return (g);
}

int OnInit ()
{
   int m,n;
   m = operation ( 7 , 5 , addition);
   n = operation ( 20 , m, subtraction);
   Print (n);
   return ( INIT_FAILED );   //just to close the expert
}
 
각 매크로가 아닌 값을 반환할 수 있다는 것을 의미합니다. 누가 알겠습니까?
 
Seric29 :
각 매크로가 아닌 값을 반환할 수 있다는 것을 의미합니다. 누가 알겠습니까?

매크로에서 값을 전혀 반환할 수 없습니다. 매크로는 한 코드 조각을 다른 코드 조각으로 바꾸는 것입니다.

 
Dmitry Fedoseev :

매크로에서 값을 전혀 반환할 수 없습니다. 매크로는 한 코드 조각을 다른 코드 조각으로 바꾸는 것입니다.

명쾌하고 정확한 답변 정말 감사합니다.

 
완전히 사실이 아닌 것처럼 매크로는 삼항 연산자 ?: 또는 값을 반환할 수 있는 쉼표 연산자(µl가 아님)로 확장될 수 있습니다.
 
Vict :
완전히 사실이 아닌 것처럼 매크로는 삼항 연산자 ?: 또는 값을 반환할 수 있는 쉼표 연산자(µl가 아님)로 확장될 수 있습니다.

C ++에서 삼항 연산자는 더 개발되었습니다. 조건이 true이면 여러 작업을 수행 할 수 있으며 mql4는 여전히 메모리에 대한 액세스를 닫았으므로 10 년 동안 개발자는 중요한 변경 사항을 적용하지 않았으며 주목할만한 기능을 만들었습니다(색상과 텍스트로 작동하는 기능만 있고 다른 것은 정상적인 어리석음일 뿐 그 이상은 아닙니다).