CDECL
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgCdecl
- 最后更新: 2022-10-31
在过程声明中指定 cdecl 风格调用约定
语法
vb
Sub name Cdecl [Overload] [Alias "alias"] ( parameters )
Function name Cdecl [Overload] [Alias "alias"] ( parameters ) [ Byref ] as return_type说明
在过程声明中,Cdecl 指定过程将使用 Cdecl 调用约定。在 Cdecl 调用约定中,参数按列出顺序的相反顺序(即从右到左)压入栈中。过程无需保存 EAX、ECX 或 EDX 寄存器,并且在返回前不得清理栈(弹出参数)——这由调用代码负责。
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 Ptrend GeSHi
与 QB 的差异
- FreeBASIC 新增特性
另请参阅
Pascal,StdcallDeclareSub,Function
返回 目录