함수 포인터 선언
리턴 타입 (*포인터 명)(인자 자료형);
#include<stdio.h>
void hello(char* string)
{
printf("Hi %s\n", string);
}
int main()
{
void(*Phello)(char*); //Phello 이름으로 함수 포인터 선언
Phello = hello; //함수 이름은 그 함수의 주소를 의미함!
Phello("hello");
return 0;
}
일반적으로 포인터 변수를 선언할 때
int형 포인터 변수를 선언하면 int형 변수의 주소를 담을 수 있습니다.
이것과 같은 이치로
void형 함수에 인자가 char * 형인 함수의 주소를 담으려면
void형 (*포인터 이름) (char *)
이렇게 선언할 수 있습니다.
인자의 형태 개수
리턴 타입이 모두 맞아야 하고
하나라도 맞지 않으면 에러가 납니다.
함수 이름은 함수의 주소를 의미하기 때문에
함수 포인터에 대입이 가능하고
기존 함수처럼 똑같이 사용할 수 있습니다.
끝
'컴퓨터 프로그래밍 > C' 카테고리의 다른 글
C언어 문자열 처리 함수 (strchr() : 문자 검색) (0) | 2019.07.23 |
---|---|
C언어 문자열 처리 함수 (strstr() : 문자열 검색) (0) | 2019.07.23 |
C언어 문자열 처리 함수 (strcmp() : 문자열 비교) (0) | 2019.07.23 |
C언어 문자열 처리 함수 (strcat() : 문자열 이어 붙이기) (0) | 2019.07.23 |
C언어 문자열 처리 함수 (strcpy() :문자열 복사) (0) | 2019.07.23 |