군대 1개월 다녀오면서 많은걸 느꼈네요. ㅎㅎ

덕분에 블로그에 글 쓰는걸 귀찮아 하지 않고 열심히 쓰려 합니다. 


이번편은 C언어 매크로 편이고, 알아두고 쓰면 좋은 C언어 매크로들입니다. 


좋은점: 매크로를 사용하면 컴파일러에서 처리하기 때문에 실행시간이 줄어드는 효과가 있음.

속도에 민감한 프로그램을 작성한다면 꼭 매크로를 사용하는것이 좋음 실예로, MAX(A,B) 매크로 함수를 사용하여 시간 덕을 보았음


매크로를 앞으로 쭈~~욱 업데이트할 예정임 ㅎ


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


+ Recent posts