C函数名修饰编码规则.doc

C函数名修饰编码规则.doc

ID:50368181

大小:135.00 KB

页数:14页

时间:2020-03-08

C函数名修饰编码规则.doc_第1页
C函数名修饰编码规则.doc_第2页
C函数名修饰编码规则.doc_第3页
C函数名修饰编码规则.doc_第4页
C函数名修饰编码规则.doc_第5页
资源描述:

《C函数名修饰编码规则.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C++函数名修饰编码规则-------------------------------2010年8月19日qduwg原创下面是总结的对C++名字修饰的一些规则,通过大量的实验搞出的。其中需要在VC内写一个小程序,然后通过单步调试,可以看出其编码规则,也可以使用cl/Fc/cxx.cpp方法编译你的cpp文件,得到一个xx.COD文件,在那里也可以看到修饰后的名字及汇编代码等。当然不了解一点编码规则,是无法看懂那些类似火星人编码的文字的。故废寝忘食一个多星期,白天晚上的干,才整理出来以下资料,也是自己心血的结晶

2、。聊以抛砖引玉。com(int,int)(??0comp@@QAE@HH@Z 复数类构造函数构造函数为?0,跟作用域comp,结束标志@@,函数访问类型Q,一般函数A常函数用B,调用规则E(this)。参数为2个整数,HH表示。@Z为函数标志comcom();??0comp@@QAE@XZ复数类构造函数,无参数。构造函数为?0,跟作用域comp,结束标志@@,函数访问类型Q,一般函数A常函数用B,调用规则E(this)。无参数用X表示。Z为函数标志,前面没有那个@号。c1.add(c2);//c1,c2分别为

3、复数类对象?add@comp@@QAEAAV1@AAV1@@Z)复数类成员函数。?成员函数名add,域名comp,结束标志@@,QAE含义同前,返回值类型AAV1,引用本层类的对象,@分隔符,然后参数AAV1,也是引用本类对象,分隔符@,函数结束标志@Z。注意此时最后面的@@Z的两个@之间没有数字的。(seebelow,后面情况有变化)增加一层名字空间时:?add@comp@wang@@QAEAAV12@AAV12@@Z        //如果自定义了名字空间wang,可以看出作用域的变化。增加二层名字空间时

4、:函数原型comp&add(comp&a)?add@comp@wang@gang@@QAEAAV123@AAV123@@Z //如果在自定义名字空间wang外层又定义了一个gang名字空间域,可以看出作用域的变化。增加二层名字空间时:函数原型comp&add(comp&a,comp&b)       //函数参数为多个,且有重复前面的参数的时候。?add@comp@wang@gang@@QAEAAV123@AAV123@0@Z //如果增加了多层名字空间,那么在参数的后面就会出现相应的层号1,2,3等,而且在

5、原来的@@Z的两个@之间增加一个数字0.表示重复前面第0号参数。如果有不同类型参数,则填入相应代号即可,替换掉数字。参见后面实例描述。cout<

6、class,后面?$char_traits@D@std@@,为第二个参数类类型的具体描述,其中@为参数类型,std@@为char_traits类所在域,然后是外层类$basic_ostream的范围std@@,然后是QAE,含义同前,接着是返回值类型,AAV是表示对一个对象的引用,0和1分别表示所引用对象参数,0表示跟前面第0个相同,即@DU,1表示跟前面第1个相同即@D(注意序号从0开始算起)。然后是函数参数,这里是H表示输出整数,最后是结束标志@Z。注:这里的范围不是名字空间,是指有不同类构成的函数签名,

7、跟前面的名字空间不同的。类模板名由$开头,然后是模板参数。cout<<'';??6std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z //调用的内联函数这个名字是没有类名修饰的名字,属于公有函数。开始是名字?6std@@,然后是YA,公有函数,调用约定A,返回值类型AAV表示对类引用(AA表示引用,V表示类),后面是引用的类,由$basic_ostream@DU?$char_traits@D@std@@描述,其后紧跟的是参数表,其中@

8、0是内联函数标志,@AAV10表示与0号参数相同类型,@D表示字符类型参数,@Z表示函数。char*p,cout<<*p;??6std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z //调用的内联函数constchar*p,cout<<*p;??6std@@YAAAV?$basic_ostream@DU?$char_traits@

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。