아래코드는 무엇을 의미할까?

 

 

#ifdef __cplusplus

extern "C" {

#endif

 

현재 코드가 C++ 일 경우 이후 구문들은 extern "C" 선언과 함께 범위(scope)로 지정되는 것이겠죠.

C++은 컴파일시 함수 이름을 모두 다른 이름으로 바꿔주기 때문에 C에서 컴파일된 함수를 링크시킬때는 해당함수의 선언부 혹은 include부분에 extern "C"라는 키워드를 사용하여 해당 함수가 C로 컴파일된 함수라는것을 컴파일러에게 명시적으로 알려야한다.

 

즉! C로 컴파일된 함수를 C++에서 부를 수 없기에 이를 가능하게 하는 기법이다

 

 

//CFile.c

 

 

//CppFile.cpp

 

 

[ 컴파일 & 실행 ]


 

+ Recent posts