인프런 커뮤니티 질문&답변

home님의 프로필 이미지
home

작성한 질문수

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

프로토콜이 적용된 파일 송신 서버 제작 (예제 포함)

특정 이벤트 발생시 호출되는 함수 관련 질문이 있어요!!

해결된 질문

작성

·

301

0

 강사님.

Lookup table 구조로 가게되면 함수 포인터에
예를 들어 함수 포인터 배열 이름이 func 일 때,

특정 이벤트가 발생할 때, 핸들러 함수에서 내부 로직으로 func[0](); 이런식으로 호출하는 구조도 많이 사용되는 구조인지요 ? ... 그러니까 인덱스 값을 함수가 주입받는 구조가 아니라, 특정 이벤트에 실행될 핸들러 함수에
인덱스를 하드코딩해 놓는 구조도 많이 사용되는 구조인지요 ? 예를들면 파일 전송 요청이오면 핸들러에 func[0](); 이런식으로요!!! 제가 프로그래밍 능력이 부족해서 설명이 부족해서 글이 길어졌네요 ...;;

답변 1

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

네, 많이 사용되는 구조입니다. 심지어 성능이슈가 있을 때 가장 중요하게 사용되는 예라 하겠습니다. 가령 운영체제 내부에 인터럽트 서비스 루틴(함수)들도 배열 형태로 등록되어 있고 인터럽트 발생 시 호출(Call back)됩니다. 다만, 함수 포인터 배열 인덱스를 하드코딩하는 경우는 자주 발생하지는 않습니다. 그러나 사실 이런 모든 것들이 개발자의 선택과 상황에 달린 문제라 무엇이 정답이라 할 수 있는 것은 아닙니다. 참고하시기 바랍니다. 감사합니다.

home님의 프로필 이미지
home

작성한 질문수

질문하기