본문 바로가기

컴퓨터 과학 & 영상처리 관련/C / C++

120520 함수포인터 공부

 

#include <stdio.h>

void test(char* str);

void main(void){
     void (*p)(char*); //함수 포인터 선언
     char a[] = "함수 포인터 테스트";
     p = test;
//대입
     p(a); //함수포인터 p 를 이용해 함수 호출
}

void test(char* str){
   printf("\n%s\n",str);
}

 

결과 : 함수 포인터 테스트

 

 

void* Thread(void *arg); //이런 함수가 있으면

pthread_create(&thread_test,NULL,(void*(*)(void*))Thread,&th_arg)

 

(void*(*)(void*)) 여긴 그냥 생략 가능함...나는 그렇게 사용해왔었찌

 

 

 

 

#include <stdio.h>
int a(int);
int b(int);
int c(int);
int (*p[3])(int)={a,b,c}; //함수포인터 베일려 함수 주소 저장

void main(void){
int i;
scanf("%d",&i);

p = p[i-1](4); //scanf의 결과에 따라 다른 함수가 불리운다
}