您的位置:首页 > 其它

名字修饰与调用约定

2011-03-08 21:23 253 查看
下面是整理的关于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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: