name mangling
-
[Name mangling/Name decoration] 유일한 이름을 위해개발/C·C++ 2021. 4. 19. 15:57
extern "C" { extern "C++" { void func(); } } Name mangling은 C++에만 있습니다. C++에서 Name mangling이 필요한 이유는 여러 namespace, module, class 등에서 사용된 같은 이름(함수, 변수 등)을 고유하게 만들어주기 위해서입니다. Name mangling 덕에 C++에서 함수 오버로딩도 가능한 것입니다. 링커가 오브젝트 파일들은 연결할 때 Name mangling을 통해 필요한 엔티티를 이어줍니다. 즉 Name mangling은 컴파일 단계에서 이루어집니다. 아래와 같은 함수 선언부가 있을 때, int f (void) { return 1; } int f (int) { return 0; } void g (void) { int i..