카테고리 없음

함수 포인터

zuyo 2019. 5. 8. 21:46
반응형

함수도 변수처럼 메모리 공간에 저장된다. 
함수 포인터는 메모리 상에 저장된 함수의 주소 값을 저장한다. 
함수의 이름도 함수가 저장된 메모리 공간의 주소값을 의미한다.

함수포인터의 형(type)은 반환형과 매개변수의 선언을 기준으로 구분한다.

double Func(double num1, double num2) {...}

double (*fptr) (double,double); // 함수 포인터 선언
fptr = Func; // 함수 포인터 변수에 함수의 주소값 저장

fptr(3.14, 2.0); // Func(3.14, 2.0); 과 동일한 결과

예시)

#include<stdio.h>

int Compute(int num1, int num2, int num3, int (*Func)(int a,int b,int c))
{
	return Func(num1,num2,num3);
}

int Add(int num1,int num2,int num3)
{
	return num1+num2+num3;
}

int Mul(int num1,int num2,int num3)
{
	return num1*num2*num3;
}

void main()
{
	int num1 = 3;
	int num2 = 4;
	int num3 = 5;
	int result;

	result = Compute(num1,num2,num3,Add);
	printf("덧셈결과: %d\n",result);

	result = Compute(num1,num2,num3,Mul);
	printf("곱셈결과: %d\n",result);
}

 

반응형