鱼C论坛

 找回密码
 立即注册
查看: 3282|回复: 6

C语言的函数调用约定问题

[复制链接]
发表于 2013-9-27 23:31:59 | 显示全部楼层 |阅读模式
1鱼币
在学windows编程的时候,第一个windows程序的主函数就用了一个调用约定
int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)

这里WINAPI调用约定在函数名称的前面,我想问一下一般的c语言函数名前面是不是可以加一个调用约定啊

在C语言的教程里面都没有说过这个问题啊?求解一下

比如我定义这样一个c函数对吗

int  __stdcall  fun(int a,int b)
{
;
}

这样对不对啊?

最佳答案

查看完整内容

对呀...还有__cdecl,__vectorcall和__fastcall,都是C或C++中全局函数的调用方法,而C++中类的方法只有一种调用方式__thiscall,有写或没写都可以。默认是采用__cdecl的调用方式,但是可以在编译器的编译参数中设置默认调用方式 /Gd 使用__cdecl /Gr 使用 __fastcall /Gz 使用__stdcall /Gv 使用__vectorcall (参数大小写一定要正确)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-27 23:32:00 | 显示全部楼层
对呀...还有__cdecl,__vectorcall和__fastcall,都是C或C++中全局函数的调用方法,而C++中类的方法只有一种调用方式__thiscall,有写或没写都可以。默认是采用__cdecl的调用方式,但是可以在编译器的编译参数中设置默认调用方式
/Gd 使用__cdecl
/Gr 使用 __fastcall
/Gz 使用__stdcall
/Gv 使用__vectorcall
(参数大小写一定要正确)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-28 09:11:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-28 10:59:55 | 显示全部楼层
支持,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-28 14:42:44 | 显示全部楼层
可以选最佳吗?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-28 21:24:18 | 显示全部楼层
支持,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-29 09:14:12 | 显示全部楼层
565123 发表于 2013-9-28 14:42
可以选最佳吗?谢谢

忘记了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 00:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表