Name Mangling

  • 컴파일러가 임의로 함수나 변수의 이름을 변경하는 것
  • 오버로딩을 했을 때 각각의 함수의 심볼을 생성할 때 함수 이름, 매개 변수, 반환 값을 고려하여 변경함
  • C에서는 함수 오버로딩이 없기 때문에 Name Mangling이 필요 없음

extern "C" : C++와 C에 모두 호환되기 위해 Name Mangling하지 않고 C처럼 심볼을 만들라는 명령어

extern "C" int def(int a, int b)
{
	return 0;
}
// 중괄호로 묶어 여러 함수를 extern "C"로 선언
extern "C"
{
	void drawLine();
	void simulate();
}

'C++' 카테고리의 다른 글

C++ template 장단점  (0) 2024.08.19
C++ 상등성, 동등성  (0) 2024.08.19
C++ 빌드 과정  (0) 2024.08.17
C++ STL  (0) 2024.08.17
C++ 템플릿 메타 프로그래밍  (0) 2024.08.06

+ Recent posts

목차