在vc++中,函数修饰名由编译类型(c或c++)、函数名、类名、调用约定、返回类型、参数等多种因素共同决定。下面分c编译、c++编译(非类成员函数)和c++类及其成员函数编译三种情况说明:
1、c编译时函数名称修饰
当函数使用__cdecl调用约定时,编译器仅在原函数名前加上一个下划线前缀,格式为_functionname。例如:函数int __cdecl add(int a, int b),输出后为:_add。
当函数使用__stdcall调用约定时,编译器在原函数名前加上一个下划线前缀,后面加上一个@符号和函数参数的字节数,格式为_functionname@number。例如:函数int __stdcall add(int a, int b),输出后为:_add@8。