C 함수 포인터 매개변수 - sonkoni/Koni-Wiki GitHub Wiki
== 선언 ==
반환값자료형 함수이름(함수포인터반환값자료형 (*함수포인터이름)(함수포인터매개변수자료형1, 함수포인터매개변수자료형2, ...), ...) {...함수구현...}
=====================================================================
함수의 매개변수로서 함수포인터
== typedef 처리 ==
typedef 반환값자료형 (*함수포인터별칭)(매개변수자료형1, 매개변수자료형2, ...);
반환값자료형 함수이름(함수포인터별칭 매개변수, ...) {...함수구현...}#include <stdio.h>
int Add(int a, int b) {
return a + b;
}
// ┌▶ 함수포인터로 된 매개변수
// ══════╧════════════
void Exec(int (*fp)(int, int), int a, int b) {
printf("=> %d\n", fp(a, b));
};
int main(int argc, char *argv[]) {
Exec(Add, 10, 5);
return 0;
}
// => 15대부분 typedef 처리를 한다. 이렇게 안 쓰면 지저분해서 코드를 읽기가 힘들기 때문이다.
#include <stdio.h>
typedef int (*CalcFunc)(int, int);
int Add(int a, int b) {
return a + b;
}
void Exec(CalcFunc fp, int a, int b) {
printf("=> %d\n", fp(a, b));
};
int main(int argc, char *argv[]) {
Exec(Add, 10, 5);
return 0;
}