MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 427

 
Artyom Trishkin :
그리고 정적 변수가 초기화된 횟수를 읽습니다. 그리고 질문 자체는 부조리로 인해 사라집니다.)

그런 다음 이것을 이해하는 방법: static 키워드로 선언된 지역 변수는 함수의 수명 내내 값을 유지합니다. 이후에 함수를 호출할 때마다 이러한 지역 변수 에는 이전 호출 중에 가졌던 값이 포함됩니다. 사용자 정의 함수에서 선언된 변수는 로컬 변수가 아닙니까?

 
Alekseu Fedotov :

두 번째 질문의 경우,

첫 번째 틱이 걸리지 않으면 두 번째 틱이 잡힙니다.

의 여는 시간을 반환합니다. 바 전체에서 동일할 것입니다.
 
novichok2018 :

그런 다음 이것을 이해하는 방법: static 키워드로 선언된 지역 변수는 함수의 수명 내내 값을 유지합니다. 각각의 후속 함수 호출에서 이러한 지역 변수 에는 이전 호출 중에 가졌던 값이 포함됩니다. 사용자 정의 함수에서 선언된 변수는 로컬 변수가 아닙니까?

static 한정자는 그것을 정적으로 만들고, 이미 로컬 변수가 아닌 정적 변수에 대해 메모리에 저장되어 있습니다.
 
Artyom Trishkin :
의 여는 시간을 반환합니다. 바 전체에서 동일할 것입니다.

이해합니다. 고맙습니다.

 
Artyom Trishkin :
static 한정자는 그것을 정적으로 만들고, 이미 로컬 변수가 아닌 정적 변수에 대해 메모리에 저장되어 있습니다.

그러나 여기에서 나는 이해하지 못한다. 제 생각에는 코드에 따라 저장 위치는 중요하지 않습니다. 함수가 호출될 때마다 변수 값을 0으로 재설정합니다. 무엇 때문에?

 
novichok2018 :

그러나 여기에서 나는 이해하지 못한다. 제 생각에는 코드에 따라 저장 위치는 중요하지 않습니다. 함수가 호출될 때마다 변수 값을 0으로 재설정합니다. 무엇 때문에?

첫 출시의 경우 - 발표 시. 또한 귀하가 그 내용을 제어합니다.
 
Artyom Trishkin :
첫 출시의 경우 - 발표 시. 또한 귀하가 그 내용을 제어합니다.

그래도 제 생각에는 그렇지 않습니다. 코드는 매번 한 줄씩 읽혀지고 매번 0에 부딪힐 때마다 그리고 처음 실행할 때 초기화가 없더라도 변수는 0 값을 취합니다. 행 static datetime New_Time=0; 프로그램이 불필요한 작업을 수행하도록 합니다.

 
novichok2018 :

그래도 제 생각에는 그렇지 않습니다. 코드는 매번 한 줄씩 읽혀지고 매번 0에 부딪힐 때마다 그리고 처음 실행할 때 초기화가 없더라도 변수는 0 값을 취합니다. 행 static datetime New_Time=0; 프로그램이 불필요한 작업을 수행하도록 합니다.

그들은 당신에게 "아니오"라고 말하고 당신은 "예"라고 말합니다 ...
변수 값을 로그에 인쇄하고 살펴보십시오. 가장 간단한 것을 설명할 때 왜 휴식을 취합니까?
스스로 확인할 때까지 나 없이 계속하십시오.
 
Artyom Trishkin :
그들은 당신에게 "아니오"라고 말하고 당신은 "예"라고 말합니다 ...
변수 값을 로그에 인쇄하고 살펴보십시오. 가장 간단한 것을 설명할 때 왜 휴식을 취합니까?
스스로 확인할 때까지 나 없이 계속하십시오.
화를 낼 필요가 없습니다. 그러나 프로그래머가 텍스트를 다르게 읽는다는 것은 분명합니다. 저는 항상 프로그램이 "0과 동일"이라고 말하면 컴퓨터가 시작되는지 여부 또는 코드 라인에 다시 액세스할 때와 상관없이 컴퓨터가 0과 같아야 한다고 믿었습니다. 그리고 0으로 초기화 의 중복성을 증명하기 위해 저널에 갈 필요가 없습니다. 그냥 제거하면 됩니다. static datetime New_Time; 정적 datetime과 정확히 동일한 결과를 제공합니다. New_Time=0; 프로그램 속도가 얼마나 빨라지는지는 모르겠지만 "추가 신체 움직임"은 여전히 제거됩니다.
 
novichok2018 :
화를 낼 필요가 없습니다. 그러나 프로그래머가 텍스트를 다르게 읽는다는 것은 분명합니다. 저는 항상 프로그램이 "0과 동일"이라고 말하면 컴퓨터가 시작되는지 여부 또는 코드 라인에 다시 액세스할 때와 상관없이 컴퓨터가 0과 같아야 한다고 믿었습니다. 그리고 0으로 초기화의 중복성을 증명하기 위해 저널에 갈 필요가 없습니다. 그냥 제거하면 됩니다. static datetime New_Time; 정적 datetime과 정확히 동일한 결과를 제공합니다. New_Time=0; 프로그램 속도가 얼마나 빨라지는지는 모르겠지만 "추가 신체 움직임"은 여전히 제거됩니다.
나는 완고함을 모욕하지 않습니다. 무엇 때문에?
변수는 명시적으로 초기화해야 합니다. 그러면 언젠가 초기화의 중요성을 알게 될 것입니다. 그 동안 코드에서 중괄호 안의 모든 것을 버릴 수 있습니다.