C++ 修饰名的格式探究

以下结果是由VS2010里面测试得出:

------------------------------------------------------------------

 

/*
函数名、类名、名称空间、@@、函数访问级别、调用约定、返回类型、参数类型、有无参数(@Z、XZ)
函数名:	?函数名
类名:	@类名
名称空间:@名称空间名
函数访问级别:
純函数是Y,静态类方法public,protected,private依次是S,K,C
非静态类方法public,protected,private依次是QA,IA,AA
调用约定:__cdecl 是 A , __stdcall 是 G
对于返回类型与参数类型:
void,char,signed char,unsigned char,short,unsigned short,
int,unsigned int,long,unsigned long,float,double,long double,
long long,unsigned long
依次对应:X, D, C, E, F, G, H, I, J, K, M, N, O, _J, _K
有无参数:有参数@Z、无参数XZ
-------------------------------------------------------
int	foo(void);			?foo@@YAHXZ
short foo(void);			?foo@@YAFXZ
short foo(int, int);				?foo@@YAFHH@Z
short __cdecl foo(int, int);		?foo@@YAFHH@Z
short __stdcall foo(int, int);		?foo@@YGFHH@Z
short __stdcall muyou::foo(int,int)	?foo@muyou@@YGFHH@Z
public: static short __stdcall muyou::a::foo(int,int)		?foo@a@muyou@@SGFHH@Z
protected: static short __stdcall muyou::a::foo(int,int)	?foo@a@muyou@@KGFHH@Z
private: static short __stdcall muyou::a::foo(int,int)	?foo@a@muyou@@CGFHH@Z
private: short __stdcall muyou::a::foo(int,int)			?foo@a@muyou@@AAGFHH@Z
protected: short __stdcall muyou::a::foo(int,int)			?foo@a@muyou@@IAGFHH@Z
public: short __stdcall muyou::a::foo(int,int)			?foo@a@muyou@@QAGFHH@Z
-------------------------------------------
void foo();				?foo@@YAXXZ
void foo(void);			?foo@@YAXXZ
void foo(char);			?foo@@YAXD@Z
void foo(signed char);		?foo@@YAXC@Z
void foo(unsigned char);	?foo@@YAXE@Z
void foo(short);			?foo@@YAXF@Z
void foo(signed short);	?foo@@YAXF@Z
void foo(unsigned short);	?foo@@YAXG@Z
void foo(int);			?foo@@YAXH@Z
void foo(signed int);		?foo@@YAXH@Z
void foo(unsigned int);	?foo@@YAXI@Z
void foo(long);			?foo@@YAXJ@Z
void foo(signed long);		?foo@@YAXJ@Z
void foo(unsigned long);	?foo@@YAXK@Z
void foo(float);			?foo@@YAXM@Z
void foo(double);			?foo@@YAXN@Z
void foo(long double);		?foo@@YAXO@Z
void foo(long long);		?foo@@YAX_J@Z
void foo(signed long long);?foo@@YAX_J@Z
void foo(unsigned long long);?foo@@YAX_K@Z
*/
namespace muyou{
	class a
	{
	public:
		short __stdcall foo(int, int);
	public:
		void vf(){foo(1, 1);}
	};
}
using muyou::a;
int main(void)
{
	a oa;
	oa.vf();

	return 0;
}

 

  点击下载

 

转载于:https://www.cnblogs.com/xxNote/p/4180652.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值