[플밍노트] C++ 부스트 라이브러리 CRC32 계산하기

부스트에는 참 많은 기능이 있죠. CRC 계산하는 루틴도 포함되어 있습니다. 그것도 사용하기가 너무 너무 쉬워요.
그럼 일반적으로 많이 사용하는 32비트 CRC를 계산 루틴을 한 번 살펴볼까요 ㅋ~

#include <stdio.h>
#include "boost/crc.hpp" (1)

int main()
{
	boost::crc_32_type crc; (2)

	char bytes[] = "hello world!";
	crc.process_bytes(bytes, strlen(bytes)); (3)

	printf("%08x\n", crc.checksum()); (4)

	return 0;
}
  1. crc.hpp 일단 인클루드 해 주시구요.
  2. crc_32_type이 우리가 계산할 32비트 CRC를 계산하는 클래스 타입입니다.
  3. process_bytes로 CRC 계산할 버퍼를 계속 공급해 주시면 됩니다. 버퍼 포인터와 크기라는 건 뭐 그냥 아시겠지요?
    참고로 한번에 넘기기 큰 데이터는 분할해서 process_bytes를 호출하면 됩니다.
  4. checksum 메소드를 사용하면 계산된 32비트 CRC 값이 넘어 옵니다.