아래코드는 무엇을 의미할까?
#ifdef __cplusplus
extern "C" {
#endif
현재 코드가 C++ 일 경우 이후 구문들은 extern "C" 선언과 함께 범위(scope)로 지정되는 것이겠죠.
C++은 컴파일시 함수 이름을 모두 다른 이름으로 바꿔주기 때문에 C에서 컴파일된 함수를 링크시킬때는 해당함수의 선언부 혹은 include부분에 extern "C"라는 키워드를 사용하여 해당 함수가 C로 컴파일된 함수라는것을 컴파일러에게 명시적으로 알려야한다.
즉! C로 컴파일된 함수를 C++에서 부를 수 없기에 이를 가능하게 하는 기법이다
//CFile.c
//CppFile.cpp
[ 컴파일 & 실행 ]
'0x0001 > C, C++' 카테고리의 다른 글
[C언어] 다차원 배열, 다중 포인터 (0) | 2019.02.07 |
---|---|
[C언어] const 키워드 (0) | 2019.02.07 |
[C언어] 재귀적 함수, 가변인자 함수 (0) | 2019.02.07 |
[C언어] 파일 입출력, 매크로 (0) | 2019.02.07 |
[C언어] 문자열 함수, 구조체, 공용체, 열거형 (0) | 2019.02.07 |