__FASTCALL
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgFastcall
- 最后更新: 2022-12-05
在过程声明中指定 Fastcall 调用约定
语法
vb
declare Sub name __Fastcall [Overload] [Alias "alias"] ( parameters )
declare Function name __Fastcall [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type
Sub name [__Fastcall] [Overload] [Alias "alias"] ( parameters )
Function name [__Fastcall] [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type说明
Fastcall 是一种用于 x86 目标的调用约定,其中第一个和第二个整数参数分别通过 ECX 和 EDX 寄存器传递,而非通过栈传递。其余所有参数从右到左压栈,由被调用方负责清理栈(与 Stdcall 类似)。
Fastcall 可以同时在声明和定义中指定。
若过程定义有一个(显式或默认)指定了调用约定的声明,且该定义未显式指定调用约定,则调用约定由声明隐式确定。
注意:在 win32 x86 的 extern "c++" 块中,非静态成员过程的默认调用约定为 Thiscall。
示例
start GeSHi
vb
Extern "c++"
Declare Function Example __Fastcall (param1 As Long, param2 As Byte, param3 As LongInt, param4 As String) As Integer
End Externend GeSHi
版本
- 自 fbc 1.10.0 起可用。
与 QB 的区别
- FreeBASIC 新增
另请参阅
Cdecl,Stdcall,ThiscallDeclareSub,Function
返回 目录