2개의 결과를 반환하는 함수?

 

하나의 함수 에서 2개의 결과를 반환해야 합니다. 그것들을 분리하고 필요한 각 결과에 대해 하나의 함수를 만들 수 있지만 훨씬 더 많은 코드와 다른 것들을 더 복잡하게 만듭니다. MT4로 가능한가요?

 

전달 매개변수 확인 참조:

int res1 func(int& res2, 기타 매개변수...)

 

기본적으로 함수 를 두 번 실행하고 매번 다른 결과를 얻기 위해 spceial 매개변수를 전달한다는 의미입니까? 나는 그것이 효과가 있을 수 있다고 생각한다...

그래도 할 수 있기를 바랍니다.

 return (a,b);
 

아니요,

정수 x;

int y=func(x, 기타 매개변수 );

호출 후 x=5 및 y=2;

int res1 func(int& res2, 기타 매개변수...)

{

res2=5

반환(3);

}

 

내 말은 y=3

 

와우, 도와주셔서 감사합니다만 여기서 무엇을 하시는지 이해가 되지 않습니다. 여기에 복사하여 붙여넣을 수 있는 완전히 코딩된 기능 이 있습니까?

 

여전히 하나의 결과를 반환하는 것처럼 보입니다. "3"

반환(3);

?

 

mql4 도움말에서 참조로 매개변수를 전달하기만 하면 됩니다.

일반적으로 재정의를 통해 전달한다는 것은 실제 변수를 외부에서 함수 로 전달하고(& 사용) 함수 내부에서 값을 변경할 수 있으며 호출에서 다시 돌아올 때 해당 값은 여전히 존재한다는 것을 의미합니다.

따라서 int x는 값을 0으로 설정합니다.

x=5로 설정한 내부 함수

함수에서 설정한 대로 x=5 함수에서 돌아올 때 2개의 결과를 반환하지 않고 함수에서 두 번째 결과를 제공했습니다.

함수는 2개의 결과를 반환하지 않으며 하나만 반환합니다.

 

알았어, 고마워, irusoh1

 

irusoh1 설명에서 빠진 것은 변수가 Array(s)여야 한다는 것입니다. 그리고 오히려 반환은 배열을 채우거나 수정하는 역할을 하지 않고 대신 필요에 따라 직접 수정합니다.

 int Xarray[]; int Yarray[];

void Fun2result( int & Array[], int & Brray[], int pos)
{    Array[pos] = 2 + pos;
     Brray[pos] = 5 + pos;
} 
int start()
{  
    for (i= Bars - 1 ; i>= 0 ; i--)
       Fun2result(Xarray, Yarray, i); 
}

행운을 빕니다.

 

배열일 필요는 없습니다

사유: