2010-08-23 2 views
2

내가 좋아하는 미리 정의 된 값을 확인할 수 있습니다 정의 검사처리기는

표준 단락 연산자 ( &&)
#ifdef SOME_VAR 
    #ifdef SOME_VAR2 
     // At least! Do something 
    #endif 
#endif 

답변

6

defined 키워드와 함께이 상황에서 사용되는 키워드입니다. 마찬가지로

#if defined(SOME_VAR) && defined(SOME_VAR2) 
    /* ... */ 
#endif 

, 일반 하지 연산자 (!)를 부정 사용된다 :

#if defined (SOME_VAR) && defined(SOME_VAR2) 

#endif 

#ifdef#ifndef 그냥 단축키 :

#if defined(SOME_VAR) && !defined(SOME_OTHER_VAR) 
    /* ... */ 
#endif 
+3

'&&'는'# ifdef'와 함께 작동하지 않는다는 점을 지적하면'# if'와'defined()'를 사용해야합니다 :-) – psmears

4

당신은 defined 연산자를 사용할 수 있습니다 defined 연산자의 경우

2

당신은 쓸 수 있습니다 : "빈 기호"는 # 만약 시험에서 false로 평가하기 때문에

#if defined(SOME_VAR) && defined(SOME_VAR2) 
// ... 
#endif 
1

#if defined(A) && defined(B)

0

하나의 대안은, #ifdef와를 사용하고 단지 # 만약 사용에서 멀리 얻을 수 있습니다.

그래서 그 대신 당신은 그냥

#if SOME_VAR && SOME_OTHER_VAR 
    // -- things 
#endif 

을 할 수 그러나에 큰 부작용은 당신뿐만 아니라 당신의 변수로 #define 필요가있다, 당신이 뭔가 수를 정의 할 필요가있다. 예 : 위의 #if 테스트를 할 것입니다 그 # 정의 중 하나를 언급

#define SOME_VAR   1 
#define SOME_OTHER_VAR 1 

실패 (한, 동봉 된 물건이 평가되지 않는 것처럼, 컴파일러가 충돌하거나 밖으로 오류 또는 아무것도하지 않습니다).

관련 문제