아래와 같은 3개의 함수가 있을때
이 함수(bts, exo, ses)를 인자로 받고 돌려줘 보자.
void bts() { }
void exo(int a) { }
int ses(int a, int b) { return 11; }
일단 위 함수를 만들어 보고 잘 동작되는지 테스트해보자.
함수의 body는 크게 의미없다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void bts() {
printf("%s%s\\r\\n", __func__,"()");
}
void exo(int a) {
printf("%s%s\\r\\n", __func__, "()");
}
int ses(int a, int b) {
printf("%s%s\\r\\n", __func__, "()");
return 11;
}
int main() {
bts();
exo(1);
ses(11, 22);
return 0;
}
어떻게 하면 좋을까?
void set_bts(★) { // ★에 bts 함수를 인자로 받자.
}
void set_exo(★) { // ★에 exo 함수를 인자로 받자.
}
void set_ses(★) { // ★에 ses 함수를 인자로 받자.
}
아래와 같이 채우면 된다.
void set_bts(void (*fp)()) {
}
void set_exo(void (*fp)(int), int a) {
}
void set_ses(int (*fp)(int, int), int a, int b) {
}