C언어 3

[C언어] 구조체로 Byte, Bit 필드 사용

typedef struct { unsigned char BIT0:1;// 1BIT 크기의 데이터 unsigned char BIT1:1;// 1BIT 크기의 데이터 unsigned char BIT2:1;// 1BIT 크기의 데이터 unsigned char BIT3:1;// 1BIT 크기의 데이터 unsigned char BIT4:1;// 1BIT 크기의 데이터 unsigned char BIT5:1;// 1BIT 크기의 데이터 unsigned char BIT6:1;// 1BIT 크기의 데이터 unsigned char BIT7:1;// 1BIT 크기의 데이터 }BITS; typedef union { unsigned char BYTE; BITSBit; }BYTES; BYTES Data[10];

C언어 2021.01.13

[C언어] 함수포인터 배열 사용

/* 각 A,B,C,D 기능을 하는 함수가 있다고 하면 */ void Func_A(void); void Func_B(void); void Func_C(void); void Func_D(void); /* 포인터 배열로 함수포인터를 선언할 수 있음. */ /* 단, 동적할당이 안되어 불편함 */ void (*Func_Pointer[4])(void); void main(void) { int i = 0; /* 대충 이런식으로 주소를 지정해줄 수 있는데 비효율적임 */ Func_Pointer[0] = Func_A(); Func_Pointer[1] = Func_B(); Func_Pointer[2] = Func_C(); Func_Pointer[3] = Func_D(); /* 호출만 시켜줌 */ for(i = 0; i..

C언어 2021.01.13

[C언어] 함수 포인터

함수포인터를 사용해서 함수를 호출하는 프로그램은 가독성이 떨어질 수 있습니다. 그러나, 함수 포인터로 인자를 받아서 호출하게 되면 유지 관리가 편한 것과 추후 프로그램 수정이 필요할 때 유연하게 수정을 할 수 있습니다. 가독성이 떨어지기 때문에 디버깅도 힘들 수 있고 예외처리를 제대로 해주지 않으면 NULL 포인터에 진입할 가능성이 있으니 이 부분도 검사를 잘해줘야합니다. // 임의의 숫자 변수 선언 unsigned char Num = 0; // unsigned char형 매개변수를 갖는 void형 함수 포인터 생성 void(*Func_Pointer)(unsigned char p_Num); voidFunc(unsigned char p_Num) { num = p_Num; } void main(void) {..

C언어 2021.01.13