컴퓨터공학 기초/C.C++

#define 매크로 예제

레필리아 2013. 7. 19. 09:10

#define ABS(a)(((a) < (0))?-(a):(a))

#define SWAP(ab)(a)^=(b)^=(a)^=(b)

#define LIMIT(vallh)((val)<(l)?(l):(val)?(h)?(h):(val))


#define SAFE_DELETE(xif(xdelete xx = NULL;

#define SAFE_DELETE_ARRAY(xif(xdelete []xx = NULL;

#define SAFE_RELEASE(xif(xx->Release(); x = NULL;

#define SAFE_DELTE_OBJECT(xif(xDeleteObject(x);


#define IS_ARRAY_ACCESS(varmaxval) (0 <= var && var < maxval) ? true : false

#define IS_VALID_VALUE(varminvalmaxval) (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__); 을 하면 이 프린트 라인의 라인수를 출력해준다