|
잘하자 님이 쓰신 글 :
: 타이머에서
: 리턴문을 중간중간에 걸어 놓는 소스를 봤습니다.
: void __fastcall TForm1::RxTTimer(TObject *Sender)
: {
: RxT->Enabled = false;
:
: if(skip06->Checked==true){
: IndexChange(9);
: FunT->Enabled = true;
: return;
: }
: if(skip16->Checked==true){
: IndexChange(9);
: FunT2->Enabled = true;
: return;
: }
: }
: 이렇게 하니간 위의 if문에서 걸리면 밑에 if문은 실행하지 않고
: 타이머를 종료하더라고요
위에 if문의 조건을 만족하면 위쪽루틴만 실행한후 타이머함수를 종료하라고 return문을 사용하신것 아닌가요..
당연히 맞는 동작이구요.. ^^;; return문을 만나는 순간 아래쪽 루틴은 실행이 되지 않습니다.
: 그런데 이런식으로 사용해도 별 이상이 없는지요
루틴을 작성하신 의도가 그러시다면 상관없지만... 아래쪽 루틴도 skip16의 조건에 맞춰 실행이 되어야 된다면 return문들은 제거를 하셔야 겠지요.
: 또 return 에서 도데체 어디로 return되는지요
void형 함수에 사용된 return문이니.. 그냥 해당함수의 실행을 종료할 따름입니다. 타이머함수에다가 어떤값을 리턴하는것도 아니니 어디로 return될리도 없겠지요..
|