본문 바로가기
대외활동/한화비전 VEDA

함수 포인터, 구조체 포인터 예제

by hoshi03 2024. 7. 23.

- 함수 포인터

추가하자

 

-구조체 포인터

typedef struct _CMD_TBL {
	char 	*cmd;		// command name
	void	(*run)(int);	// function point.
	char	*usage;		// command usage
} CMD_TBL;


#define	CMD_TBL_T1	{"on", ledon, "  ledon  function"}
#define	CMD_TBL_T2	{"off", ledoff, "  ledoff function"}
#define	CMD_TBL_T3	{"state", getstate, " button state function"}
#define	CMD_TBL_END	{0, 0, 0}


// 구조체 포인터 순회하는 코드

CMD_TBL *cptr;
		for (cptr = cmdTbl; cptr->cmd != 0; cptr++)
		{
			if (!strcmp(cmd, cptr->cmd))
			{
				cptr->run(1);
				break;
			}
		}

 

CMD_TBL	*cptr = cmdTbl;

	printf("The following commands are supported :\n");

    while (cptr->cmd != 0)
	{
		printf("%s\n",cptr->usage);
		cptr++;
	}

 

 

'대외활동 > 한화비전 VEDA' 카테고리의 다른 글

보이드 포인터를 이용한 제네릭 프로그래밍  (1) 2024.07.23
부트로더  (0) 2024.07.23
임베디드 C  (4) 2024.07.22
리눅스 C 환경설정  (0) 2024.07.22
volatile 지시자  (0) 2024.07.19