첫번째로 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; ..
자바의 Class는 마치 C의 typedef와 비슷해보입니다. 그러나 실제로 많은 차이가 있습니다. 자바 Class는 생산성과 효율성을 높이기 위해, 궁극적으로 객체지향을 목표로 만든것이 이므로 typedef보다 훨씬 사용하기 편하다. 자바에서는 궁극적으로 Class를 통해 instance를 만들어 냅니다.자바에서 다음 구문Class class = new Class(); 는 무엇을 의미할까요?이것은 class라는 이름의 메모리를 확보한 후 포인터를 넘겨준것과 같은 효과를 냅니다. new와 동시에 memory allocation이 발생한 것입니다. 메모리를 확보했으니 사용 후 반환을 해야 하는데, 자바는 가비지 콜렉션이 알아서 해줍니다. 로컬영역에서 빠져나오면 로컬변수가 없어지는 것 처럼.C는 다릅니다. ..
객체지향 언어에서 패턴은 어쩌면 매우 당연한 프로그램 기법이라고 할 수 있습니다. 패턴은 객체지향 언어의 지향점을 잘 살리도록 하면서 개발의 재미와 더불어 효용성을 높이는 역할을 하기도 합니다.물론 협업을 하거나 짝프로그램, 소스를 공유할 때 타인도 패턴에 대해 이해도가 높아야 패턴의 활용도가 높아지며 커뮤니케이션에 문제가 없을 것입니다. 그런데, C와 같은 절차적 언어에서는 사용하기 어려울 까요? 이제 시작할 C언어의 패턴은 객체지향 언어에서 패턴을 다소 억지로 따왔습니다.굳이 이렇게 까지 구현 해야하나 생각이 들수도 있으나, 옳고 그름을 떠나 프로젝트에 맞는 것을 선택하는 것이 최선입니다. 이제 억지스런 C 패턴을 천천히 시작해 보도록 하겠습니다. 물론 제가 올린 내용 틀릴 수도 있다. 무조건 옳겠지..