我是初学者:哪位大虾能告诉我__fastcall是什么意思?

jevinhoo 2002-11-05 10:22:32
class TForm1 : public TForm
{
__published: // IDE-managed Components
TImage *Image_Lcd;
TButton *Button_Power;
void __fastcall Button_PowerClick(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
在定义public对象的时候,前面__fastcall是什么意思,谁能告诉我啊,谢谢!?
...全文
89 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mopyman 2002-12-22
  • 打赏
  • 举报
回复
强制被修饰的函数使用寄存器传递参数,如果有可能的话,从而提高函数的执行效率.有时该修饰符会失去作用.


+--------------------------------------------------------+
|滚滚长江东逝水,浪花淘尽英雄.是非成败转头空,青山依旧在,几度夕阳红.|
+--------------------------------------------------------+
wwxc18 2002-12-22
  • 打赏
  • 举报
回复
用了這麼久了
還真的沒有想過呢?
binbin 2002-12-22
  • 打赏
  • 举报
回复
尽可能使用寄存器传参,这样调用函数效率较高.
fenchane 2002-12-22
  • 打赏
  • 举报
回复
小弟还真是没想过这个问题
IT-司马青衫 2002-12-22
  • 打赏
  • 举报
回复
__fastcall的含义是该函数按照“寄存器调用规则”,也就是说函数的前三个参数将使用EAX、EBX和ECX寄存器传递,剩下的参数使用堆栈传递,传递的顺序是从左向右,返回值保存在ECX寄存器,并且由被调用者负责清除堆栈,如果参数的类型不能匹配寄存器,比如不是指针或者是结构、浮点类型等,相应的寄存器则空置不用,在VCL中所有的类成员函数都必须是“__fastcall”类型,C++ Builder的缺省设置是C语言调用规则,因此在类成员函数之前必须加 __fastcall关键字,可以通过更改项目的设置而将缺省的调用规则改为“__fastcall”规则,而不是"_cdecl"规则,就可以在程序中省略这个关键字,但并不推荐这样。
warton 2002-11-05
  • 打赏
  • 举报
回复
是快速调用!
TopCat 2002-11-05
  • 打赏
  • 举报
回复
我记得我以前回答过一个这样的问题,你为什么不先搜索一下呢?
winkiky 2002-11-05
  • 打赏
  • 举报
回复
顾名思义就是快速调用的意思嘛
dahuzizyd 2002-11-05
  • 打赏
  • 举报
回复
你看看帮助把,我的E文水平太差了。
mynameis007 2002-11-05
  • 打赏
  • 举报
回复
没有用__fastcall标志的函数的参数是用堆栈来传递的.
mynameis007 2002-11-05
  • 打赏
  • 举报
回复
这样函数的前三个参数是用寄存器传递.而不是使用堆栈.
mynameis007 2002-11-05
  • 打赏
  • 举报
回复
呵呵..快速的原因就是因为它使用寄存器传递参数...呵呵.

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧