Notice
Recent Posts
Recent Comments
Link
관리 메뉴

DreamFactory7 :: IT

콜백함수 개념 본문

개선/Documentation

콜백함수 개념

우루사1호 2012. 11. 12. 19:35


참조 :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=392

일단 콜백이란
일을시킬테니 끝나거나 일생기면 연락줘입니다.
시스템이 내함수들을 직접호출하는것을의미합니다.

아래는 이해를 돕기위한 예제입니다.
- 너 일하다가 2시되면 깨워줘

youworkit(wakeupme(),2hour)


- 너 삽질하고있어 상관뜨면 연락줘

yousabjil(connectme(),looksanggwan())

- 너 100원줄테니 저금하고있어 200원넘아가면 나에게줘
yousavemoney100won(givememoney(),200won)

공통점인것들은 내가 남에게 일을 시키고 만족되면 다시 나에게 달라는겁니다.
이런개념입니다.

그런데 이걸 C언어에서는 함수포인터를 이용해서 구현합니다.

왜냐면 C언어에서 기능적인것들은 대부분 함수형태로 구분해서 쓰기때문이죠.

근데 호출하기는 할껀데 지금은 안할꺼니까 변수형태로 써야합니다.

함수의 인자는 변수들만들어갑니다. 그런데 함수자체는 들어가지않습니다.

설령 함수를 넣는다해도 함수가 호출될때 바로 실행해버립니다.

(위에 제가 표현을 함수형태로 했습니다만.. 저렇게하면  저함수들 실행하기도전에 givememoney()등이 먼저 실행되버립니다.)


변수형태에 맞로 쓰려다보니 포인터밖에안되는거죠.


시스템콜도 비슷한개념입니다.
시스템아! 너 일하다 일있으면 내이름은 홍길동이니까 홍길동! 하고 불러줘 입니다.

그러면 시스템은 특별한일아니면 하겠죠.. 그러다 그럴만한상황이 발생되면
"홍길동!" 이렇게 하겠죠?


요점은 이렇습니다.

나 잠깐쉰다. 너가 하고있다가 나불러

이런겁니다.

'개선 > Documentation' 카테고리의 다른 글

작성중인 문서들  (0) 2013.04.27
프론트엔드 + 코어  (0) 2013.04.23
아이덴티티탭 e201(일명 K패드)과 e301 스펙비교  (0) 2013.02.13
그룹스터디 방법  (0) 2012.11.14
구글에 올려진 편집기 비교 문서  (0) 2012.11.14