티스토리 뷰

함수 포인터

함수 포인터의 정의와 용도에 대해 설명할 수 있다.
함수 포인터의 기초 문법을 알고 구현할 수 있다.

함수 포인터 이해

1.기본개념 : 소개 : 정의

함수 포인터란? 함수의 주소를 저장하는 변수

1.기본개념 : 소개 : 필요성
  1. 프로그램 코드 간결화
  2. 배열로 처리함으로써 중복 코드 제거 가능
  3. 상황에 따른 함수 호출
  4. 함수를 데이터 형태로 처리 -> 함수의 보관과 전달이 용이
1.기본개념 : 소개 : 형식

리턴타입(*함수 포인터명)(매겨변수리스트);

2.함수 포인터 형식
  1. 리턴과 매개변수가 없는 함수에 대한 함수 포인터
  2. 리턴과 매개변수가 있는 함수에 대한 함수 포인터
  3. 함수 포인터 배열
  4. 구조체 멤버
  5. 함수의 매개변수

함수 포인터 활용

1.qsort()
  1. 함수원형 : coid qsort(void*base,size_t num, size_t size,
    int(*compar)(const void*,const void*);
  2. 헤더 : stdlib.h
  3. 기능 : 테이블의 자료를 퀵 정렬로 내림이나 오름차순으로 정렬
  4. 매개변수 : void * base -> 테이블의 포인터 주소
    size_t num -> 테이블에 들어 있는 실제 데이터 개수
    size_t size -> 한 개 요소의 크기
    int(*compar)(const void*,const void*) -> 두 요소를 비교하기 위한 함수 포인터
  5. 반환값 : void
  6. 구현 : 비교함수는 직접 구현해야 함
    (배열의 자료형과 비교방식이 다르기 때문)

함수 포인터 이해

  • 함수 포인터는 함수를 저장하는 포인터를 의미함
  • 함수 포인터를 활용하면 함수를 자유롭게 주고받거나 함수 호출을 자동화할 수 있음
  • 리턴타입(*함수 포인터명)(매개변수리스트);

함수 포인터 활용

  • qsort는 stdlib.h를 incloude 해야 함
  • qsort는 테이블의 자료를 퀵정렬하는 함수임
  • 비교함수는 처리할 자료형에 맞게 직접 구현해야 함
댓글
© 2018 webstoryboy