4. ::= da # delete[]
5. ::= ps # + (unary)
6. ::= ng # - (unary)
7. ::= ad # & (unary)
8. ::= de # * (unary)
9. ::= co # ~
10. ::= pl # +
11. ::= mi # -
12.
13. ::= ml # *
14.
15. ::= dv # /
16. ::= rm # %
17. ::= an # &
18. ::= or # |
19. ::= eo # ^
20. ::= aS # =
21. ::= pL # +=
22. ::= mI # -=
23. ::= mL # *=
24. ::= dV # /=
25. ::= rM # %=
26. ::= aN # &=
27. ::= oR # |=
28. ::= eO # ^=
29. ::= ls # <<
30. ::= rs # >>
31. ::= lS # <<=
32. ::= rS # >>=
33. ::= eq # ==
34. ::= ne # !=
35. ::= lt # <
36. ::= gt # >
37. ::= le # <=
38. ::= ge # >=
39. ::= nt # !
40. ::= aa # &&
41. ::= oo # ||
42. ::= pp # ++
43. ::= mm # --
44. ::= cm # ,
45. ::= pm # ->*
46. ::= pt # ->
47. ::= cl # ()
48. ::= ix # []
49. ::= qu #
50. ::= st # sizeof (a type)
52. ::= cv
53.
54. ::= v
类型编码:
1.
2.
3. ::= P
4. ::= R
5. ::= O
6. ::= C
7. ::= G
8. ::= U
下面是一段简单的代码:
1. /*
2. * Author: Chaos Lee
3.
4. * Description: A simple demo to show how the rules used to mangle functions' names work
5.
6. * Date:2012/05/06
7.
8. */
9. #include
10. #include
11. using namespace std;
12.
13. int test_func(int & tmpInt,const char * ptr,double dou,string str,float f)
14.
15. {
16. return 0;
17. }
18. int main(int argc,char * argv[])
19.
20. {
21. char * test="test";
22. int intNum = 10;
23. double dou = 10.012;
24. string str="str";
25. float f = 1.2;
26. test_func(intNum,test,dou,str,f);
27. return 0;
28. }
1. [lichao@sg01 name_mangling]$ g++ -c func.cpp
2.
3. [lichao@sg01 nam