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 |