티스토리 뷰
void(*pf) (int *result, int value_1, int value_2); // 함수 포인터 설정
void add(int *result, int value_1, int value_2)
{
*result = value_1 + value_2;
}
void subtract(int *result, int value_1, int value_2)
{
*result = value_1 - value_2;
}
void main(void)
{
int z;
printf("value 1: 20 value 2: 30 기준으로 계산 \n\n");
pf = add; // 포인터 함수에 add 함수 주소 저장
pf(&z, 20, 30);
printf("add 함수 결과값 : %d\n\n", z);
pf = subtract; // 포인터 함수에 subtract 함수 주소 저장
pf(&z, 20, 30);
printf("subtract 함수 결과값 : %d\n\n", z);
}
void add(double *result, double value_1, double value_2)
{
*result = value_1 + value_2;
}
void subtract(double *result, double value_1, double value_2)
{
*result = value_1 - value_2;
}
void muti(double *result, double value_1, double value_2)
{
*result = value_1 * value_2;
}
void divide(double *result, double value_1, double value_2)
{
*result = value_1 / value_2;
}
void(*pf[4]) (double *, double, double) = { add,subtract,muti,divide };
void main(void)
{
double z;
printf("value 1: 20 value 2: 30 기준으로 계산 \n\n");
for (int i = 0; i < 4; i++) {
pf[i](&z, 20, 30);
printf("함수 결과값 : %f\n\n", z);
}
}
