----- 헤더 입니다. -----
#ifndef unitZCommonH
#define unitZCommonH
#include <Classes.hpp>
#define SET_NULL(p) { (p)=NULL; }
#define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } }
#define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } }
#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
#define ARRAY_SIZE(array) sizeof(array) / sizeof(array[0])
#define MIN(x,y) ( ((x)<(y))?(x):(y) )
#define MAX(x,y) ( ((x)>(y))?(x):(y) )
#define SWAP(a,b) {(a)^=(b)^=(a)^=(b);}
#define __getbit(bytes, start_bit, bits) ( (bytes >> start_bit) & bits )
#define __setbit(bytes, start_bit, bits, val) { bytes &= ~(bits << start_bit); bytes |= ( (val & bits) << start_bit ); }
#endif
----- 소스입니다. ----
#pragma hdrstop
////
#include "unitZCommon.h"
#pragma package(smart_init)
|
#define GetBit(bytes, start_bit, bits) ((bytes>>start_bit)&bits)
#define SetBit(bytes, start_bit, bits, val) { bytes &= ~(bits << start_bit); bytes |= ((val&bits)<<start_bit); }
전 비트 단위 데이터 입출력할때 이렇게 쓰고있는데요.. 다들 알고계시겠지만요^^;