프로그래밍/C

extern "C" {}

eteo 2023. 7. 18. 00:27

 

 

extern "C" {} 는 .cpp 소스파일에서 C 스타일로 작성된 함수나 변수를 사용하기 위한 C++의 키워드로, extern "C" {} 문구를 사용하면 해당 블록 내에 있는 함수나 변수를 C 스타일로 링크하도록 지시할 수 있다.

 

C++ 컴파일러는 C++ 언어의 특징을 따르는데, C++은 함수 오버로딩, 이름 맹글링(name mangling) 등의 기능을 지원하기 때문에 C 와는 다른 링킹 규칙을 가지고 있다.

 

따라서 extern "C" 키워드를 사용하면 C++ 코드에서 해당 블록 내에 선언된 C 함수나 C 변수를 호출 또는 참조할 때 C 스타일의 링킹 규칙을 따르도록 한다.

 

extern "C" {
    // C 함수
    extern void myCFunction(int arg);
}

extern "C" {
	// 전역변수
    extern int myCVariable;
}

extern "C" {
	// 헤더파일
    #include "main.h"
}