'Name mangling'에 해당되는 글 1건

  1. 2008.03.25 Name mangling in C++


Name mangling in C++

Development/C / C++ 2008. 3. 25. 15:59
C++은 C언어를 지원한다. 그래서 예전의 C소스를 가져다가 사용할 수 있다.

C 언어는 symbol에서 함수의 이름만으로 찾을 수 있다. 이 것은 C언어가 같은 함수 이름을
사용하는 것을 허용하지 않기 때문인데, C++에서는 다형성으로 인해서 같은 이름을 사용할 수 있다. 그래서 함수이름만으로 찾는 것이 불가능하다.

이런 것을 위해서 내부적으로 함수 이름을 변경해주는데 이것이 name mangling 이다.

다음과 같이 된다.

int foo(void)  {return 1;}
int foo(int ) {return 1;}
void goo(void) { int i=foo(), j=f(0); }



int _foo_i (void)  {return 1;}
int _foo_v (int ) {return 1;}
void _goo_i (void) { int i=_foo_i(), j=_foo_v(0); }




참조 : http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B




: