이전에 작성한 포인터와 함수랑은 다른 개념으로
함수포인터는 포인터를 함수에 설정을 하는 것으로 포인터와 마찬가지로 *기호를 사용하고 함수의 주소값을 저장합니다.
즉, 함수포인터는 함수가 아니라 함수의 주소값을 담고 있는 변수를 뜻합니다.
int Add(int a, int b){
return a + b;
}
int (*func)(int x, int y);
func = &Add;
int result = func(3,4); // 7
이때 대입한 함수는 타입과 형식이 같아야합니다. 왜냐하면 대입한 함숫값을 함수포인터에 넣었기 때문에 간접참조가 되어 함수포인터를 통해 참조한 함수를 실행시켜 return값을 돌려받기 때문입니다.
우리가 플러그인을 사용할때 어떻게 사용을 하나요? 플러그인 설치했다고 해서 프로그램 전체가 바뀌나요? 아니죠, 바로 우리가 추가한 플러그인만 조립하듯이 추가가 될 뿐입니다. 이와 같이 프로그램의 확장성을 높여주는 플러그인과 같은 방식이 함수포인터입니다.
'프로그래밍📚' 카테고리의 다른 글
사용자 정의 타입이란? - 공용체와 enum (0) | 2024.02.05 |
---|---|
사용자 정의 타입이란? - 구조체 (0) | 2024.02.05 |
함수와 배열, 포인터 개념알기 (0) | 2024.01.29 |
연산자와 조건문, 반복문 (0) | 2024.01.28 |
변수와 상수 그리고 자료형 (0) | 2024.01.22 |