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); 
}

행운을 빕니다.

 

배열일 필요는 없습니다