C언어에서 아주 중요한 static의 활용을 알아 보도록 하겠습니다. 여러 사람이 함께 작업하는 프로젝트에서는 static을 적절히 사용해야 합니다. static 으로 선언만하고 사용하지 않는 함수나, 변수를 컴파일러에서 warning해주기 때문에 아주 유용합니다. 여러분들도 아시겠지만 컴파일러에서 error를 발생하면 타킷 보드에 프로그램을 로딩할 수가 없습니다. 그러나 warning이 발생하도라도 로딩이 가능하기 때문에 무시하는 경우가 많은데, 이는 런타임시에 에러를 발생 할 수 있으므로 warning도 반드시 없애주는 것이 좋습니다. static은 여러개의 파일내에 해당 파일내의 scope로 동일한 이름의 함수를 각 파일별로 만들 수 있게 해줍니다. 예를 들어 보겠습니다. 여러개의 .c 파일을 만들..
http://terms.naver.com/entry.nhn?docId=3532979 디자인 패턴중에 매우 사용도가 높고 매우 효율적인 State 패턴은 공부를 하다보면 좀 헷갈리는 디자인 패턴입니다. 대부분의 패턴은 if 문과 같이, 유지보수나 버그를 양산하기 쉬운 코드를 없애고 쉬운 확장을 목적으로 구조를 만듭니다. State 패턴은 각 상태가 바뀔 때 마다 늘어나는 if문을 없애는 패턴입니다. 즉, 상태들 끼리 서로의 상태를 바꿔가며 동작하기 때문에 유지보수도 쉽고 확장도 용이합니다. 그러나 상태변화에 대한 명확한 이해와 구조를 어떻게 할지에 대한 고민이 필요합니다. 다소 생소하고 복잡하게 보일지 모르지만 한번 구현해 보도록 하겠습니다. 예제는 단순한 Light를 On/Off하는 기능을 State 패..
C언어로 자바의 Class를 만들 수 있을까요? 완벽한 Class를 만들 수는 없지만 비슷하게 만들 수 있습니다. 기능적으로는 Class와 동일한 역할을 할 수 있지만 동적으로 할당/해제에는 제한이 있습니다. C언어에서 typedef와 structure그리고 함수 포인터를 이용하면 class와 같은 기능을 할 수 있습니다. 왜 C언어로 Class를 만드는 다소 복잡하고 이해하기 쉽지 않은 구조를 만드냐고 물어보신다면, 우리가 앞으로 만들 디자인 패턴에서 반드시 사용되는 기법이기 때문입니다. 즉, 좀 더 효율적인 프로그램을 가능하게 합니다. 이번 예제는 다소 극단적인 C언어 Class입니다. 실제로 이렇게까지 사용하는 경우는 별로 없을 것 같습니다만 여러분들이 보시기에 알고 있거나 더 좋은 방법이 있다며 ..
들어가기전에 이전글에 작성했던 글을 수정하여 올리려고 합니다. 아마 이전 글에서는 C 코드 에디터가 없는 관계로 복사가 어려웠었습니다. 이제 맘대로 복사해서 테스트 해볼 수 있게 될 것입니다. '▶ 이전글/C Pattern' 카테고리의 글 목록 STM32 MCU와 C언어 디자인 패턴에 대한 글을 공유합니다. cpattern.tistory.com 객체지향 언어 자바, C++ 등에서 디자인 패턴은 매우 당연한 프로그램 기법이라고 할 수 있습니다. 패턴은 객체지향 언어의 지향점을 잘 살리도록 하면서 개발의 재미와 더불어 효용성을 높이는 역할을 하기도 합니다. 물론 여러사람이 소스를 공유할 때는 반드시 다른 협력자들도 디자인 패턴에 대해 이해도가 높아야만 디자인 패턴의 활용에 무리가 없어지며 타인과의 커..