[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 208

 
내 비전에서 그것은 전송 가능한 매개 변수였습니다)))), 글쎄, 그것 없이는 아닙니다))). 덕분에 해결되었습니다.
 
Aleksander :

친애하는 ... 그렇게 큰 글자로 여기에 쓸 필요가 없습니다 ... 그렇지 않으면 눈을 깰 수 있습니다 :-)

그리고 이것은... 질문을 하기 전에.. 메타에디터에서 HELP를 읽어보셨나요? 모두? 우선 ... 유형과 물건에 대해 넌센스를 묻지 마십시오 ....

===

OrderSend() 함수의 작업 유형입니다. 다음 값 중 하나일 수 있습니다.

끊임없는 의미 설명
OP_BUY 0 구입
OP_SELL 하나 판매
OP_BUYLIMIT 2 BUY LIMIT 대기 중인 주문
OP_SELLLIMIT 보류 중인 주문 SELL LIMIT
OP_BUYSTOP 4 보류 중인 주문 BUY STOP
OP_SELLSTOP 5 보류 중인 주문 SELL STOP
친애하는 ... 여기에서 과시를 이길 필요가 없습니다 ... 뭔가 어리석은 것처럼 보이면 대답 할 필요가 없습니다. 과대망상증이없는 사람들이 없습니다 ... 여기 초보자를위한 섹션이 있습니다. 사람들이 무언가에 대해 묻는다면 이해할 수 없습니다 ... 더 나아가 모든 것이 인증서와 책에 명확하게 기록되어 있다면 나는 여기에 있지 않을 것입니다.
이제 본질적으로: 3개의 주문이 있고 모두 시장 주문이라고 가정해 보겠습니다. 그런 다음 3번의 반복으로 블록 4에 들어가지 않습니다. 그리고 마지막 반복 후 블록 4를 우회하여 즉시 블록 5로 이동합니다. 블록 5에는 블록 4에서 선언된 변수 Tip이 있습니다. 그러나 블록 4는 실행되지 않았습니다. 따라서 변수 Tip은 선언되지 않습니다. 변수를 선언하기 전에 변수를 사용한다는 것이 밝혀졌습니까?

 
왜요? 컴파일러는 첫 번째 패스에서 esche 변수에 대한 메모리 영역을 할당했으며 액세스해도 오류가 발생하지 않습니다...
 
Aleksander :
왜요? 컴파일러는 첫 번째 패스에서 esche 변수에 대한 메모리 영역을 할당했으며 액세스해도 오류가 발생하지 않습니다...


다음 요점은 명확하지 않습니다. 첫 번째 패스 동안(3개의 주문이 모두 시장 주문인 경우) 블록 4에 들어가지 않습니다. 블록 3에서 if(OrderType()<2) 조건이 충족됩니다. 그런 다음 연산자는 계속해서 현재 반복을 종료하고 변수 Tip 이 선언 된 SKIPS 블록 4를 따릅니다. 이것은 Tip 변수가 첫 번째 패스 동안 선언되지 않았음을 의미합니다(즉, Tip 변수 선언이 있는 라인은 실행되지 않았습니다)... 그리고 모든 3번의 반복입니다. 저것들. 세 번째 반복 후에 우리는 변수 Tip이 사용되는 블록 5에 도달합니다. 여기서 변수 Tip은 이전에 선언되지 않은 것으로 나타났습니다(즉, 선언이 있는 줄이 있지만 블록 4에 들어가지 않았기 때문에 그렇게 했습니다. 이 변수를 선언하지 않습니까?)?

 

나는 프로그램의 텍스트를 통해 컴파일러의 통과를 의미했습니다 - 함수의 어느 지점에서든 변수의 정의를 찾았고 - 메타컴파일러는 텍스트에서 아래에 사용하기 위해 이 변수를 선언했습니다 - 실제로 호출이 없었음에도 불구하고 변수의 초기화(선언) ... - 이것이 환경입니다 :-)

 int start()  {
       int l= 1 ;
       
       if (l == 2 ) {
           int kk= 99 ;
          kk = 100 ;
       }
   }
   if (kk != 10 ) { Print ( "net kk takoi peremennoi = " , kk); }


조건에 대한 항목은 없었지만 컴파일러는 int를 만났고 변수에 대한 메모리 셀을 할당했습니다. 초기화하지는 않았지만 ... Print에서는 = 0이 됩니다.

 
Aleksander :

나는 프로그램의 텍스트를 통해 컴파일러의 통과를 의미했습니다 - 함수의 어느 지점에서든 변수의 정의를 찾았고 - 메타컴파일러는 텍스트에서 아래에 사용하기 위해 이 변수를 선언했습니다 - 실제로 호출이 없었음에도 불구하고 변수의 초기화(선언) ... - 이것이 환경입니다 :-)


조건에 대한 항목은 없었지만 컴파일러는 int를 만났고 변수에 대한 메모리 셀을 할당했습니다. 초기화하지는 않았지만 ... Print에서는 = 0이 됩니다.



저것들. 내가 올바르게 이해 했습니까? 터미널 (대략적으로 말하면)과 달리 컴파일러는 루프를 실행하지 않지만 단순히 행의 줄을 읽고 오류를 확인합니다 ... 즉. 그에게 가장 중요한 것은(오류의 유무에 대한 기준) 변수가 사용된 행(위치)이 이 변수가 선언된 행(위치) 뒤에 와야 한다는 것입니다.
 
그렇게 말할 수 있습니다 :-) 아래에서 발표하고 텍스트에서 위의 변수를 참조하면 컴파일러에서 오류가 발생합니다...
 
Aleksander :
그렇게 말할 수 있습니다 :-) 아래에서 발표하고 텍스트에서 위의 변수를 참조하면 컴파일러에서 오류가 발생합니다...

이것으로 명확합니다. 대단히 감사합니다... GV-변수에 대해 말씀해 주시겠습니까?
 

그들은 어떻습니까? - 터미널 수준의 글로벌?

변수 파일에 시간을 저장하십시오 :-) 액세스 날짜, 이름 및 이중
 
추신 - 그리고 간접적으로 :-) - 변수 이름에 최대 63개의 문자를 저장할 수 있습니다. 심지어 러시아어, 심지어 영어까지...