#ifdef ~ #endif 에 대한 궁금한 점...
글쓴이: 달파란 / 작성시간: 월, 2004/11/15 - 11:40오전
제가 수정하기로 하고 넘겨 받은 소스 중에 아래와 같은 부분이 있습니다.
#define AUTH [..중략.] #ifdef AUTH func_A(); func_AA(); #else func_B(); func_BB(); #endif
제가 의아하게 생각하는 점은 #ifdef ~ #endif 구문은
Makefile 등에서 flag 를 define 하여 유연하게 사용하기 위한 것으로 알고 있는데,
위와 같이 맨 위에 #define AUTH 로 hard coding 되어있으면
소스를 직접 건드리지 않은 한 항상 func_A(); func_AA(); 만 실행되지 않느냐는 점입니다.
제가 func_B(); func_BB(); 가 실행되게 하고 싶으면 Makefile 수준에서 제어할수 없고.. 소스를 열어서 #define AUTH 를 주석처리하는 수 밖에 없는 것일까요??
Forums:
컴파일시 지정하는 옵션이 더 우선일겁니다.-UAUTH 로 지정해
컴파일시 지정하는 옵션이 더 우선일겁니다.
-UAUTH 로 지정해 보세요.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
현재의 코드상에서는 주석처리를 해야죠.. 주석 처리를 한후에 [cod
현재의 코드상에서는 주석처리를 해야죠..
주석 처리를 한후에
를 Makefile에서 지정해주면 Makefile에서 지정 할 수 있죠..
그렇군요. 소스를 건드리지 않고 -UAUTH 를 옵션으로 주는 방법은 통
그렇군요. 소스를 건드리지 않고 -UAUTH 를 옵션으로 주는 방법은 통하지 않네요..
결국 #ifdef ~ #endif 구문을 쓸때 #define AUTH 와 같이 하드코딩해 놓는 것은 좋은 습관이 아닌것 같네요.
Re: #ifdef ~ #endif 에 대한 궁금한 점...
식으로 한 번 더 싸주면 됩니다.
그냥 컴파일하면 func_A가, 컴파일 시에 -DDISABLE_AUTH 라고 해 주면 func_B가 컴파일됩니다.
[quote="달파란"]결국 #ifdef ~ #endif 구문을 쓸때
제 생각에는 프로그램 저자가 대강 빨리 하려고 파일에 직접 define을 한 것 같습니다.
좋지 않은 방식이죠.
제 생각에는 원작자가 이것저것 테스트하면서 만들어 놓고 가장 최근 테스트
제 생각에는 원작자가 이것저것 테스트하면서 만들어 놓고 가장 최근 테스트(또는 완성) 한 버전을 드린 것 같습니다. ^^
#define AAAAAA 1
이렇게 해놓고
저~~ 밑에가서
if( AAAAAA ) {
} else {
}
이런 코드들도 꽤 있지요.. 8)
더 이상 없다.
댓글 달기