[C] 포인터

나장승현
|2024. 1. 8. 10:01

사용 이유

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