• 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;
    }
    

     

      点击下载

     

  • 相关阅读:
    C# 串口通信总结
    客户端下载文件和服务器端下载文件总结
    Android 上传图片到 Asp.Net 服务器的问题
    iOS内存泄漏自动检测工具PLeakSniffer
    让iOS开发变得更有效率-分类、工具类
    分分钟解决iOS开发中App启动广告的功能
    响应者链及相关机制总结
    stackoverflow上关于iOS的票数最多(最常见)的15个问题
    iOS 开发之 ReactiveCocoa(进阶)
    iOS 开发之 ReactiveCocoa(基础)
  • 原文地址:https://www.cnblogs.com/xxNote/p/4180652.html
Copyright © 2020-2023  润新知