군대 1개월 다녀오면서 많은걸 느꼈네요. ㅎㅎ
덕분에 블로그에 글 쓰는걸 귀찮아 하지 않고 열심히 쓰려 합니다.
이번편은 C언어 매크로 편이고, 알아두고 쓰면 좋은 C언어 매크로들입니다.
좋은점: 매크로를 사용하면 컴파일러에서 처리하기 때문에 실행시간이 줄어드는 효과가 있음.
속도에 민감한 프로그램을 작성한다면 꼭 매크로를 사용하는것이 좋음 실예로, MAX(A,B) 매크로 함수를 사용하여 시간 덕을 보았음
매크로를 앞으로 쭈~~욱 업데이트할 예정임 ㅎ
#define ABS(a)(((a) < (0))?-(a):(a))
#define SWAP(a, b)(a)^=(b)^=(a)^=(b)
#define LIMIT(val, l, h)((val)<(l)?(l):(val)?(h)?(h):(val))
#define SAFE_DELETE(x) if(x) delete x; x = NULL;
#define SAFE_DELETE_ARRAY(x) if(x) delete []x; x = NULL;
#define SAFE_RELEASE(x) if(x) x->Release(); x = NULL;
#define SAFE_DELTE_OBJECT(x) if(x) DeleteObject(x);
#define IS_ARRAY_ACCESS(var, maxval) (0 <= var && var < maxval) ? true : false
#define IS_VALID_VALUE(var, minval, maxval) (minval <= var && var < maxval ) ? true : false
// 조건문매크로
#define IS_TRUE(c) (c)
#define IS_FALSE(c)(!(c))
#define IS_EXIST(c)(c)
#define IS_NOT_EXIST(c)(!(c))
#define IS_VALID(c)(c)
#define IS_INVALID(c)(!(c))
// 포인터매크로
#define IS_NULL(p)(!(p))
#define IS_NOT_NULL(p)(p)
// 컴파일러가 지원하는 매크로
__FILE__ //현재 파일을 스트링으로 반환한다
__FUNCTION__ // 현재 함수를 스트링으로 반환한다. __func__를 써야할 경우도 있음.
__LINE__ // 현재 줄을 정수로 반환한다.
ex) printf("%d", __LINE__); 을 하면 이 프린트 라인의 라인수를 출력해준다