source

C 다중 매크로의 사전 프로세서 테스트 정의

manycodes 2023. 6. 10. 09:31
반응형

C 다중 매크로의 사전 프로세서 테스트 정의

제가 사이트를 검색했지만 제가 찾던 답을 찾지 못해서 여기에 정말 빠른 질문이 있습니다.

저는 그런 것을 하려고 노력하고 있습니다.

#ifdef _WIN32 || _WIN64
     #include <conio.h>
#endif

제가 어떻게 그런 일을 할 수 있을까요?_WIN32가 32비트와 64비트 창 모두에 대해 정의되어 있다는 것을 알고 있기 때문에 창 감지에 대해서는 어느 쪽이든 괜찮습니다.저는 위와 같은 논리 연산자를 전처리기 지시어와 함께 사용할 수 있는지, 그리고 만약 그렇다면 어떻게 사용할 수 있는지에 더 관심이 있습니다. 왜냐하면 위는 작동하지 않기 때문입니다.

gcc로 컴파일하면 다음을 얻을 수 있습니다.

경고: #ifdef 지시어 끝에 추가 토큰이 있으며 기본적으로 첫 번째 MACRO만 가져가고 나머지는 무시합니다.

시도:

#if defined(_WIN32) || defined(_WIN64)
// do stuff
#endif

정의된 매크로는 이름이 정의되었는지 여부를 테스트하고 결과에 논리 연산자를 적용할 수 있도록 합니다.

사용해야 합니다.#if및 특수 연산자

이런 식으로 가능해야 한다고 생각합니다.

#if defined block1 || defined block2 /*or any other boolean operator*/
   /*Code*/
#endif

자세한 내용은 여기를 참조하십시오.

정의된 사용:

#if defined(A) || defined(B)
    #include <whatever.h>
#endif

언급URL : https://stackoverflow.com/questions/965700/c-preprocessor-testing-definedness-of-multiple-macros

반응형