✅ 아래 ★에 무엇이 들어갈까?

다음 챕터에 알아보자.

🔹 함수를 인자로 받는 경우

void set_bts(★ a) { // ★에 bts 함수를 인자로 받자.
}
void set_exo(★ b) { // ★에 exo 함수를 인자로 받자.
}
void set_ses(★ c) { // ★에 ses 함수를 인자로 받자.
}

🔹 함수를 돌려주는 경우

★ get_bts() { // void (*fp)()
}

★ get_exo() { // void (*fp)(int)
}

★ get_ses() { // int (*fp)(int, int)
}

🥕 당근이의 한마디

int, char을 인자로 받거나, int, char을 리턴해준다는 얘기는

당연한 얘기이고, 쉽게 코딩이 가능한데

함수 포인터를 인자로 받고, 함수 포인터를 리턴해주는 코드는 제법 낯설다.

인자로 void func() 함수를 받으려면

void func()를 받을수 있는 함수 포인터를 아래와 같이 머릿속으로 생각한후

void (*fp)() = 이걸 X라고 친다면

이걸 함수의 인자 ()에 그대로 적어주면 된다.