우리가 아주 끔찍하게 싫어하는 Hardfault를 임의로 만들어 보겠습니다. 아래 코드를 넣으면 PC가 수행할 수 없는 주소로 변경되면서 Hardfault로 Jump 하게됩니다. typedef void (*Function_Pointer)(void); /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER..
C언어로 자바의 Class를 만들 수 있을까요? 완벽한 Class를 만들 수는 없지만 비슷하게 만들 수 있습니다. 기능적으로는 Class와 동일한 역할을 할 수 있지만 동적으로 할당/해제에는 제한이 있습니다. C언어에서 typedef와 structure그리고 함수 포인터를 이용하면 class와 같은 기능을 할 수 있습니다. 왜 C언어로 Class를 만드는 다소 복잡하고 이해하기 쉽지 않은 구조를 만드냐고 물어보신다면, 우리가 앞으로 만들 디자인 패턴에서 반드시 사용되는 기법이기 때문입니다. 즉, 좀 더 효율적인 프로그램을 가능하게 합니다. 이번 예제는 다소 극단적인 C언어 Class입니다. 실제로 이렇게까지 사용하는 경우는 별로 없을 것 같습니다만 여러분들이 보시기에 알고 있거나 더 좋은 방법이 있다며 ..
C언어에서 typedef 는 새로운 타입(type)을 만드는 키워드입니다. 예를 들어 bool 타입은 true, false를 가지고 있는 기본적인 타입인데, C언어에는 없습니다. typedef를 통해 아래와 같이 간단하게 bool타입을 만들 수 있습니다. typedef enum { false = 0, true = 1 }bool; 그리고 아래와 같이 코딩 할 수 있습니다. bool isRegistered = false; if(isRegistered == true) { printf("It is registered!"); } 좀 더 활용해 보겠습니다. typedef struct { uint8_t D0; uint8_t D1; uint8_t D2; uint8_t D3; }digit_t; 새로운 digit_t라는 ..
첫번째로 typedef에 대해 먼저 살펴보겠습니다. C언어에서 typedef 는 새로운 타입을 만드는 지시어입니다. bool 타입은 true, false를 가지고 있는 기본적인 타입인데, 아쉽게도 C언어 안에는 bool 타입이 없습니다. 다행히도 아래 코드와 같이 typedef를 통해 간단하게 bool타입을 만들 수 있습니다. typedef enum { false = 0, true = 1 }bool; bool isRegistered; isRegistered = false; if(isRegistered == true) { printf("It is registered!"); } 좀 더 활용해 보겠습니다. 아래 예는 네자리 숫자를 네개로 분리하는 새로운 타입입니다. typedef struct { u8 D0; ..