사용 이유
1. 배열을 어떤 함수에서 사용하고 싶을때, 이를 인자로 넘기기 위해서 포인터를 사용
함수 포인터와 역호출 구조
- 함수 포인터
void testfunc(int nParam)
{
printf("test");
}
int main(void)
{
void (*pfunc)(int) = testfunc; // 함수 포인터
return 0;
}
- 역호출 구조(callback)
int testfunc(int nParam)
{
return nParam;
}
void Mytest(int (*pfunc)(int), int nParam)
{
printf("%d", pfunc(nParam));
}
int main(void)
{
Mytest(testfunc, 0);
return 0;
}
직접 호출하는 것이 아닌 호출되어 지는 것
void func1(int nParam)
{
printf("func1");
}
void func2(int nParam)
{
printf("func2");
}
void func3(int nParam)
{
printf("func3");
}
int main(void)
{
// 함수 포인터 배열
void (*pfList[3])(int) = {
func1, func2, func3
};
pfList[1](10);
}
'💻 Computer Science > C & C++' 카테고리의 다른 글
[C] 메모리 복사 (0) | 2024.01.09 |
---|---|
[C] 동적 할당 (0) | 2024.01.08 |
[C] 함수 (0) | 2024.01.03 |
[C] 배열 (0) | 2024.01.02 |
[C++] C와 C++ 차이 (0) | 2023.12.28 |