본문 바로가기

C언어

C언어 함수 포인터 사용법 void(* fp)();

[SYNTAX] 사용법

1. 구조

자료형 (함수포인터명) (매개변수명);

 

2.예시

void (*fp) ();

 

이때, 담으려는 자료형, 매개변수의 유형을 고려하여 함수포인터 유형 결정

 

[CODE]

함수포인터 사용 이전 코드

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 

void system() {
	
	printf("\n-------TRAVEL SYSTEM-------\n\n\n");
	printf("1. Current Reservation State\n\n\n");
	printf("  A room\t□□□□□□□□□□□□□□□□\n");
	printf("  A room\t□□□□□■□□□□□■■□□□\n");
	printf("  B room\t□□□□□□□□□□□□□□□□\n");
	printf("  B room\t□□□■■■■■■□□□□□□□\n");
	printf("  C room\t□□□□□□□□□□□□■■□□\n\n\n");
	printf("-----------------------------\n");
	printf("2. Room Information\n\n\n");
	printf("\t▣A room type\n");
	printf("\tNo smoking zone, No showerbath, No bed available\n\n");
	printf("\t▣B room type\n");
	printf("\tNo smoking zone, No showerbath, Only bed available\n\n");
	printf("\t▣C room type\n");
	printf("\tNo smoking zone but showerbath and beds are available\n\n");
}

void regist() {
	char arr[20]; 
	char arr2[20];
	char arr3[20];
	printf("\n-------TRAVELER INFORMATION-------\n\n\n");
	printf("1. Register ID:\n\n");
	scanf("%s", &arr);
	printf("\n");
	printf("2. Gender:\n\n");
	scanf("%s", &arr2);
	printf("\n");
	printf("3. address:\n\n");
	scanf("%s", &arr3);
	printf("\n");
	printf("\n-------Register Completed-------\n\n\n");

}
int main() {
	system();
	regist();
	return 0;
}

 

CODE

함수포인터 사용 코드

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

void system() {
	
	printf("\n-------TRAVEL SYSTEM-------\n\n\n");
	printf("1. Current Reservation State\n\n\n");
	printf("  A room\t□□□□□□□□□□□□□□□□\n");
	printf("  A room\t□□□□□■□□□□□■■□□□\n");
	printf("  B room\t□□□□□□□□□□□□□□□□\n");
	printf("  B room\t□□□■■■■■■□□□□□□□\n");
	printf("  C room\t□□□□□□□□□□□□■■□□\n\n\n");
	printf("-----------------------------\n");
	printf("2. Room Information\n\n\n");
	printf("\t▣A room type\n");
	printf("\tNo smoking zone, No showerbath, No bed available\n\n");
	printf("\t▣B room type\n");
	printf("\tNo smoking zone, No showerbath, Only bed available\n\n");
	printf("\t▣C room type\n");
	printf("\tNo smoking zone but showerbath and beds are available\n\n");
}

void regist() {
	char arr[20]; 
	char arr2[20];
	char arr3[20];
	printf("\n-------TRAVELER INFORMATION-------\n\n\n");
	printf("1. Register ID:\n\n");
	scanf("%s", &arr);
	printf("\n");
	printf("2. Gender:\n\n");
	scanf("%s", &arr2);
	printf("\n");
	printf("3. address:\n\n");
	scanf("%s", &arr3);
	printf("\n");
	printf("\n-------Register Completed-------\n\n\n");

}

void(* fp)();
int main() {
	fp=system;
	fp();
	fp = regist;
	fp();
	return 0;
}