[C/C++] ifdef
extern "C", __cplusplus의 의미를 알게 되었다. 기본적으로, 오버로딩은 name mangling을 이용한 기법이다. 그러나, 이것이 c, c++ 코드가 함께 있다면, 이 때문에 빌드 시 에러가 발생할 것이다. c코드의 경우, 명시적으로 컴파일러에게 c방식으로 컴파일하라고 알려주어야 한다. c, c++ 소스가 산재해 있다면, c소스에는 __cplusplus 매크로와, extern "C"를 사용해서 name mangling을 피해가야 할 것이다. extern "C"는 cpp 소스가 c 소스를 include 했을 때 맹글링 방지를 위한 도구였다. 그런데 코드는 그래도 있고, 만약에 c소스에서 c소스를 불러온다면 어떻게 될까? 컴파일 에러가 난다. 왜냐하면 extern "C"는 cpp에서만 정..