함수 포인터, void 포인터

김준혁·2026년 3월 18일

함수 포인터

#include <stdio.h>

int sum(int, int);         // 함수 선언

int main(void)
{
	int (*fp)(int, int);   // 함수 포인터 선언
	int res;               // 반환값 저장할 변수

	fp = sum;              // 함수명을 함수 포인터에 저장
	res = fp(10, 20);      // 함수 포인터로 함수 호출
	printf("result : %d\n", res);   // 반환값 출력

	return 0;
}

int sum(int a, int b)      // 함수 정의
{
	return (a + b);
}

void포인터

#include <stdio.h>

int main(void)
{
	int a = 10;                           // int형 변수
	double b = 3.5;                       // double형 변수
	void* vp;                             // void 포인터

	vp = &a;                              // int형 변수의 주소 저장
	printf("a : %d\n", *(int*)vp);

	vp = &b;                              // double형 변수의 주소 저장
	printf("b : %.1lf\n", *(double*)vp);
//printf("b : %.1lf\n", *vp);           // 잘못된 표현(data type을 변경해야 한다!)
	return 0;
}
profile
임베디드

0개의 댓글