Skip to content

__FASTCALL


在过程声明中指定 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 目标的调用约定,其中第一个和第二个整数参数分别通过 ECXEDX 寄存器传递,而非通过栈传递。其余所有参数从右到左压栈,由被调用方负责清理栈(与 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 Extern

end GeSHi

版本

  • 自 fbc 1.10.0 起可用。

与 QB 的区别

  • FreeBASIC 新增

另请参阅

  • Cdecl, Stdcall, Thiscall
  • Declare
  • Sub, Function

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系