Skip to content

CDECL


在过程声明中指定 cdecl 风格调用约定

语法

vb
Sub name Cdecl [Overload] [Alias "alias"] ( parameters )
Function name Cdecl [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type

说明

在过程声明中,Cdecl 指定过程将使用 Cdecl 调用约定。在 Cdecl 调用约定中,参数按列出顺序的相反顺序(即从右到左)压入栈中。过程无需保存 EAXECXEDX 寄存器,并且在返回前不得清理栈(弹出参数)——这由调用代码负责。

Cdecl 允许与可变参数过程声明(最后一个参数列为 "..." 的声明)一起使用。

Cdecl 是 Linux、*BSDs 和 DOS 上的默认调用约定,除非另一种调用约定被显式指定或由某个 EXTERN 块 隐含。Cdecl 通常是 C 编译器的默认调用约定,并在类 Unix 系统上几乎专用。

如果过程定义有声明(显式或默认指定调用约定),且定义未显式指定调用约定,则调用约定由声明隐含。

示例

start GeSHi

vb
' declaring 'strcpy' from the standard C library
Declare Function strcpy CDecl Alias "strcpy" (ByVal dest As ZString Ptr, ByVal src As ZString Ptr) As ZString Ptr

end GeSHi

与 QB 的差异

  • FreeBASIC 新增特性

另请参阅

  • Pascal, Stdcall
  • Declare
  • Sub, Function

返回 目录

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