mql4에서 스택 오버플로 오류의 원인은 무엇입니까? - 페이지 3

 
RaptorUK :
그러나 그것 은 그 큰 기능 을 처리할 수 있습니다 . . . 제가 설명한대로 함수 타입을 변경하면 같은 크기의 함수에 대해 컴파일 오류가 발생하지 않습니다. .


그렇다면 int 함수 를 실행하는 데 더 많은 리소스가 필요하다는 의미입니까? 그러면 메타따옴표가 init, deinit 및 void를 시작하여 더 적은 리소스를 소비할 수 있습니다.
 
RaptorUK :
그러나 그것 은 그 큰 기능 을 처리할 수 있습니다 . . . 제가 설명한대로 함수 타입을 변경하면 같은 크기의 함수에 대해 컴파일 오류가 발생하지 않습니다. .

. . . 또는 int 로 남겨두고 return(0)에 그대로 두십시오. 모든 호출에 대해 이 작업을 수행합니다. . .

   ReturnedValue = ObCreate( "EURUSDg" ,Column1xg, 15 ,ZoomTimes);
   ReturnedValue = ObCreate( "EURUSDa" ,Column1xa, 15 ,ZoomTimes);

. . . 여기서 ReturnedValue는 int 입니다. . . 뭔지 맞춰봐 ? 컴파일 오류가 없습니다.


코드를 이해하게 만드십시오. . . 그리고 Hey presto 마치 마술처럼 오류가 사라지는 것처럼 이상한 eh?

 
0을 반환하는 int 함수 는 void 함수와 비교되어야 하므로 무언가가 있음을 의미합니다.
 
tonny :

그렇다면 int 함수를 실행하는 데 더 많은 리소스가 필요하다는 의미입니까? 그러면 메타따옴표가 init, deinit 및 void를 시작하여 더 적은 리소스를 소비할 수 있습니다.
물론 int 함수 를 실행하려면 더 많은 리소스가 필요합니다. . . 값을 반환해야 하며 해당 값은 반환될 수 있도록 메모리에 저장되어야 합니다. 나는 사람들이 init, start 및 deinit를 void로 선언한 코드를 보았습니다. . . 내가 하는 일이 아닙니다.
 
RaptorUK :

. . . 또는 int 로 남겨두고 return(0)에 그대로 두십시오. 모든 호출에 대해 이 작업을 수행합니다. . .

. . . 여기서 ReturnedValue는 int 입니다. . . 뭔지 맞춰봐 ? 컴파일 오류가 없습니다.


코드를 이해하게 만드십시오. . . 그리고 Hey presto 마치 마술처럼 오류가 사라지는 것처럼 이상한 eh?


int 함수 도 0을 반환합니다. 어쨌든 문제는 해결되었지만 오류는 발생하지 않아야 할 위치에 표시되는 것 같습니다.
 
tonny :
0을 반환하는 int 함수는 void 함수와 비교되어야 하므로 무언가가 있음을 의미합니다.
아니요. . . void 함수 는 값을 반환하지 않습니다. . . 0, 1, 10000 값은 모두 동일한 메모리 공간을 사용하여 저장합니다. . . 그것들은 모두 int 유형이고 int 는 4바이트를 사용합니다. void는 0바이트를 사용하는 아무 것도 반환하지 않습니다. . .
 
즉, void가 있더라도 더 많은 객체를 추가하면 응력 지점에 도달하여 오류가 다시 발생합니다. 거기에 동의합니까?
 
침묵을 예로 들겠습니다. 경우 폐쇄.
 
tonny :
즉, void가 있더라도 더 많은 객체를 추가하면 응력 지점에 도달하여 오류가 다시 발생합니다. 거기에 동의합니까?
아니요, 동의하지 않습니다.

하지만 당신이 옳을 수도 있습니다. . .
 
RaptorUK :
아니요, 동의하지 않습니다.

하지만 당신이 옳을 수도 있는 것 같습니다 . . .

이제 우리는 같은 페이지에 있습니다.