C++ 프로그램에서 사용하는 전처리 문법 중 하나이다.
구체적인 전처리 문법은 아래와 같다.
#ifdef __cplusplus
extern "C"
#endif
C++ 컴파일러(현재 실행중인 프로그램 체계)에게, C로 작성한 코드이니 C문법을 적용하여 컴파일하라는 의미이다.
정확히 말하면, C++의 변수 맹글링(오버로딩)아닌 C의 변수 맹글링(동일한 함수명 사용 문법, 오버로딩 하지 않음)을 적용하라는 의미이다.
이는 C에서 오류는 발생할 수 있으나, C++에서 오류는 발생하지 않고 이로 인하여 생기는 치명적인 버그 및 오류 상황 등을 방지하기 위한 목적으로 사용한다.
즉, C에서 동일 함수로 다른 기능을 사용할 수 없으므로(오버로딩 불가) 컴파일 과정에서 오류가 발생할 수 있지만, C++에서는 오버로딩이 가능하여 컴파일 과정에서 오류가 발생하지 않을 수 있다.
이러한 상황을 방지하기 위하여 extern C 전처리를 진행하며, 자세한 목적이나 의미는 더 찾아봐야 할 것 같다.
쉽게 설명한 블로그 - https://m.blog.naver.com/keunsik114/221617278680
조금 어렵지만 이해하는데 도움되는 블로그 - https://onecellboy.tistory.com/6