C++ 中的 Name Mangling
关于 C++ Name Mangling 的故事,还要从 C 语言说起。
C 语言的场景 在 C 语言中,一个函数的函数名唯一标识这个函数。换另外两个表述:
不同函数的界定与区分只看函数名,与返回值、入参类型和个数等因素皆无关; 出现多个相同函数名的函数定义意味着重定义错误。 1void foo() { } 2void foo(int a) { } // error: redefinition of ‘foo’ 3int foo() { } // error: conflicting types for ‘foo’ C 语言的这种对函数的处理比较原始,但也有好处。这里涉及到一个背景知识:C/C++ 源代码经过编译器编译后,编译器会用 …