zoukankan      html  css  js  c++  java
  • 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;
    }
    

     

      点击下载

     

  • 相关阅读:
    influxdb服务器 relay
    browse-agent type and curl post
    使用 Ansible 管理 MySQL 复制
    ansible里的item和with_items
    Ansible 从MySQL数据库添加或删除用户
    ansibel---tag模块
    ll | wc -l的陷阱
    ansible 判断和循环
    Ansible详解(二)
    Ansible详解(一)
  • 原文地址:https://www.cnblogs.com/xxNote/p/4180652.html
Copyright © 2011-2022 走看看