define 관련 질문입니다. 같은 define 정의로 특정 부분에 다른것을 사용할 수 있을까요?

kknd345의 이미지

define 관련 질문입니다. 같은 define 정의로 특정 부분에 다른것을 사용할 수 있을까요?
 
간단하게 예를 들어서 설명하겠습니다.
 

#define TO_ATT +
#define TO_DEF -
 
// A  영역 //
 
 
#define TO_ATT -
#define TO_DEF +
 
// B 영역 //
 
// A영역과 B영역이 부호만 다르고 거의 같은 코드라;;; //

A영역과 B영역에 부호가 반대로 들어가야 하는데;;; 어떻게 해야 할지 모르겠네요;
변수에 상수들을 더해야 할지 빼야 할지 정하는 거라;;
 
저런 마인드로 define 을 사용하는 방법이 있나요???

mr.lee의 이미지

#undef TO_ATT
#undef TO_DEF
#define TO_ATT +
#define TO_DEF -
 
// A  영역 //
 
#undef TO_ATT
#undef TO_DEF
#define TO_ATT -
#define TO_DEF +
 
// B 영역 //

변환된것을 확인해볼려면 'cpp 소스명' 하세요.

bootmeta의 이미지

----- att_def.h begin --------------
#ifndef __ATT_DEF_H__
#define __ATT_DEF_H__

#undef TO_ATT
#undef TO_DEF

#ifdef TO_USE_DEFAULT
#define TO_ATT +
#define TO_DEF -
#else
#define TO_ATT -
#define TO_DEF +
#endif /* TO_USE_DEFAULT */

#endif /* __ATT_DEF_H__ */

----- att_def.h end --------------
// A 영역 //

#define TO_USE_DEFALUT
#include "att_def.h"

// B 영역 //

#include "att_def.h"

쓰고 보니 같은 파일 안에서는 문제가 되겠네요...
그런 경우 그냥 복잡하지 않은 코드면 윗 분 쓰신 것이 좋을 듯..