社区
C++ Builder
帖子详情
小弟有一个疑问,至今不解“BCB中的类函数定义__fastcall有什么用处”
hzbigdog
2003-12-24 08:32:33
小弟有一个疑问,至今不解“BCB中的类函数定义__fastcall有什么用处”
...全文
72
11
打赏
收藏
小弟有一个疑问,至今不解“BCB中的类函数定义__fastcall有什么用处”
小弟有一个疑问,至今不解“BCB中的类函数定义__fastcall有什么用处”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TopCat
2003-12-30
打赏
举报
回复
那就是说自己的函数穆,没有必要声明成__fastcall咯!
——是的。
hzbigdog
2003-12-30
打赏
举报
回复
那就是说自己的函数穆,没有必要声明成__fastcall咯!
ThinkX
2003-12-28
打赏
举报
回复
其实也不能说多耗内存,因为是使用三个寄存器(如ECX)传递参数的,所以如果参数多于3个,那么其他的参数也会压栈的。
__fastcall是delphi的默认调用方式,而bcb中C++默认的调用方式是__cdecl。因为bcb使用了vcl,所以必须使用__fastcall。在vc中也有__fastcall,不过和bcb中的__fastcall是不同的,bcb中有一个__msfastcall和vc中的__fastcall是兼容的。
在windows中,可以被任何编译器识别的唯一的方式就是__stdcall,它也是windows dll函数的调用方式。
hzbigdog
2003-12-28
打赏
举报
回复
还是有点不明白 顶!
那么函数用__fastcall修饰是不是执行效率提高了,但是将会多消耗一点内存?
aliker
2003-12-28
打赏
举报
回复
__fastcall修饰函数,表示它的参数是用EAX,EDX,ECX按照从左到右的顺序传递的。它的参数先放入寄存器,然后再入栈的。如果参数多于三个,那么其他的参数直接入栈。而且如果参数为结构类型或浮点型也不会放入寄存器,而直接入栈。
hzbigdog
2003-12-25
打赏
举报
回复
那么函数用__fastcall修饰是不是执行效率提高了,但是将会多消耗一点内存?
geniusdhc
2003-12-24
打赏
举报
回复
路过,有分给点
pzoon
2003-12-24
打赏
举报
回复
UP
shadowstar
2003-12-24
打赏
举报
回复
这个问题已经问过很多遍了,在哪儿搜都可以搜得到。
顺便给偶的贴子打个广告,希望有人参与讨论:__closure & COM
http://expert.csdn.net/Expert/topic/2596/2596260.xml?temp=.8210871
shadowstar
2003-12-24
打赏
举报
回复
这个问题已经问过很
shadowstar
2003-12-24
打赏
举报
回复
__fastcall和_fastcall是BCB是特有的关键字,只能用于修饰函数,其作用是指定函数使用“寄存器”调用规则,使用语法如下:
return_type __fastcall functionname(parmlist);
在BCB中,所有属于VCL的成员函数,必须是__fastcall 类型,编译器将“寄存器”调用规则和C调用规则、PASCAL及WIN32调用规则是同等对待的。
最强悍的 VC VB反编译工具 Hex-Rays
最强悍的反编译工具 Hex-Rays。可以反编译 VB VC
BCB
Delphi 等等一切 x86/x64 代码为 C 代码。密码参见内附说明文件。我写了个简单的介绍 http://blog.caozhongyan.com/article.asp?id=19
BCB
中
一些常用
函数
在队
中
分配指定字节的内存块,并将分配的每
一个
字节初始化为 0.
函数
原型如下: void * __
fast
call AllocMem(Cardinal Size); 2. SysFreeMem 释放所指定的内存块.
函数
原型如下: int __
fast
call SysF
BCB
重新执行构造
函数
,__
fast
call TForm1::TForm1(TComponent* Owner): TForm(Owner)
而有时候改变了某些变量的时候需要构造
函数
再执行一次 而如果把构造
函数
里的东西封装到
一个
方法里的话,可能成员对象还没被构造出来 所以重新执行一次构造
函数
是很必要的 重新执行构造
函数
的方法: [code=...
转:
BCB
/DELPHI常用的
函数
内存分配
函数
名称:AllocMem
函数
说明:在队
中
分配指定字节的内存块,并将分配的每
一个
字节初始化为 0.
函数
原型如下:void * __
fast
call AllocMem(Cardinal Size);
函数
名称:SysFreeMem
函数
说明:释放所指定的内存块....
C++Builder常用
函数
函数
说明 在队
中
分配指定字节的内存块,并将分配的每
一个
字节初始化为 0.
函数
原型如下: void * __
fast
call AllocMem(Cardinal Size);
函数
名称 SysFreeMem
函数
说明 释放所指定的内存块.
函数
原型如下: int ...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章