现在的位置: 首页 > 综合 > 正文

名字修饰与调用约定

2013年12月11日 ⁄ 综合 ⁄ 共 613字 ⁄ 字号 评论关闭

下面是整理的关于c/c++名字修饰和调用约定的规则:

 

 

名字修饰

调用约定

C

C++

__stdcall

约定在输出函数名前加上一个下划线前缀,后面加上一个"@"符号和其参数的字节数目,格式为_functionname@number

1. 以“?”标示函数名的开始,后跟函数名;

2. 函数名后面以“@@YG”标识参数表的开始,后跟参数表。

3. 参数表以代号标示:X--void
D--char

E--unsigned char
F--short
H--int
I--unsigned char
J--long

K--unsigned int

M--float

N--double

_N--bool
PA--标示指针,后面的代号表明指针的类型,如果相同类型的指针连续出现,以“0”代替,一个“0”代表依次重复。

4. 参数表的第一项为该函数的返回值类型,其后依次为参数的数据类型,指针标识在其所指类型前面。

5. 参数表以“@Z”标示整个名字的结束,如果该函数无参数,则以“Z”标示结束。例:int Test1(char *var1,
unsigned long)----?Test1@@YGHPADK@Z   
void Test2(void)----?Test2@@YGXXZ   
"

__cdecl

约定仅在输出函数名前加上一个下划线前缀,格式为_functionname

规则同上面的__stdcall调用约定,只是参数表的开始标识由上面的"@@YG"变为"@@YA"

抱歉!评论已关闭.