- 함수 포인터
추가하자
-구조체 포인터
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++;
}
'대외활동 > 시스템프로그래밍' 카테고리의 다른 글
보이드 포인터를 이용한 제네릭 프로그래밍 (1) | 2024.07.23 |
---|---|
부트로더 (0) | 2024.07.23 |
임베디드 C (4) | 2024.07.22 |
리눅스 C 환경설정 (0) | 2024.07.22 |
volatile 지시자 (0) | 2024.07.19 |