본문 바로가기
Engineering/C/C++

유용한 프로그래밍 기법

by Humaneer 2008. 12. 22.

통신관련 프로그래밍을 하다보면, 여러 장치간의 프로토콜을 정해야할 때가 있다.
패킷의 헤더를 정해야 할 것이고, 그 밖에 여러가지 것들, 그리고 데이터까지.
그런데 데이터의 길이가 가변적이라면?


다음과 같이 정의를 할 수 있을 것이다. 자 이렇게 하였을 때 이 패킷의 사이즈는 얼마가 될까?

4 + 1 + 1 + 4 = 10바이트가 될 것이다. 하지만 아래와 같은 기법도 있다.

배열의 크기를 0으로 하다니! 저게 말이 돼? 라고 나는 생각하였지만, 컴파일을 하고 실행을 해본 결과 내가 얼마나 무지한가를 또 한 번 절감하게 되었다. ㅋ

저렇게 패킷을 정의하고 사용은 아래와 비스무리하게, 물론 응용의 방법은 많다. 포인터의 세계에서 불가능은 없으니 +_+;


실행 결과는 아래와 같다. 패킷의 사이즈가 6이다. 데이터의 길이 역시 자기 마음데로 조절할 수가 있다.