반응형
Notice
Link
목록C와C++비교 (1)
스택큐힙리스트
C++에서 'extern C'를 필요로하는 C 코드를 감지하는 방법을 설명합니다.
나는 C++ 라이브러리의 일부로 C 헤더를 가지고 있습니다. 이 C 헤더는 C 컴파일러 또는 extern C { ... } 블록 내에서 C++ 컴파일러에 의해 컴파일될 때에만 의미가 있으며, 그렇지 않으면 링크 오류가 발생합니다. 다음과 같은 블록을 추가해보려고 생각했습니다: #ifdef __cplusplus #error C++로 C 바인딩을 컴파일 중 (\extern \C\\을 잊었습니다?) #endif 하지만 불행히도, __cplusplus 매크로는 extern C { ... } 블록 내에서도 정의됩니다. 이 조건을 정확하게 탐지하는 다른 방법이 있을까요?답변 1일반적인 관행은 클라이언트 코드가 헤더를 extern C로 감싸도록 요구하지 않는 것이지만, 여러분이 조건부로 직접 처리하는 것입니다. 예를..
카테고리 없음
2023. 12. 18. 12:01