전처리기.. 에 관한 아주 간단한 질문..

leolo의 이미지

만약에 전처리기를 사용하는데 있어서 변수 값이 1이면,

define 하고, 0이면 undefine 하는 것을 할려고 합니다.

어떻게 하면 되죠..

몇가지 해봤는데.. 안되네요..

int var = 1;
if(var == 1)
{
#define _START_VAR
}
else
{
#undef _STAR_VAR
}

문법적으로 되는지도 잘 모르겠습니다.
대충 제가 무엇을 원하는지 아시겠죠..

sodomau의 이미지

변수값이라 하시면
프로그램 코드상에서 돌아가는 전역변수나 자동변수 등을 얘기하시는건지..?
그렇다면 절대 그런 식으로 적용될 수 없습니다.
차라리
#if HOHO==1
code...
#else
...
#endif

#ifdef HOHO

#else

#endif

같은 매크로를 이용하실 수는 있겠지요.

bootmeta의 이미지

일단 매크로와 실제 c code간의 개념의 혼동이 일시적으로 오신듯 하군여.

c code의 compile이 일어나기전에 이미 프리프로세서가 처리후 결과로 나온
code만 실제 compile이 일어납니다.
따라서 실제 프로그램 실행중간의 변수 결과를 알수있는 방법이 매크로는 없겠져? :)