Skip to content

CVA_START


初始化可变参数列表对象变量的宏

语法

cva_start( argument_list, last_param )

参数

argument_list

要初始化的 cva_list 数据类型变量

last_param

过程参数列表中 省略号 ... 之前的最后一个参数

说明

在可变参数过程定义中,argument_list 是具有 cva_list 类型的变量,必须用 cva_start 初始化才能处理传递给过程的可变长度参数列表。

last_param 是可变参数过程定义中 省略号 ... 之前的最后一个参数。

cva_start 只能在可变参数过程中使用。可变参数过程通过将 省略号 ... 指定为最后一个参数来声明或定义,调用该过程时可接受可变数量的参数。

cva_start 类似于可变参数 argument_list 对象的构造函数,最终必须有对应的 cva_end 调用(类似析构函数)。调用 argument_listcva_end 后,argument_list 可以被重用,并通过另一次 cva_start 调用重新初始化。cva_startcva_end 调用必须在同一过程中成对调用(为了跨平台兼容性)。

cva_copycva_start 类似,不同之处在于它从已初始化的可变参数 argument_list 对象初始化另一个,类似于拷贝构造函数。

示例

start GeSHi

vb
'' typical usage of iterating through all arguments

Sub proc CDecl(count As Integer, ... )
    Dim args As cva_list
    cva_start( args, count )
    For i As Integer = 1 To count
        Print cva_arg( args, Integer )
    Next
    cva_end( args )
End Sub

proc( 4, 4000, 300, 20, 1 )

end GeSHi

start GeSHi

vb
'' example of using cva_start to get the first argument
'' then restarting to get all the arguments

Sub proc CDecl(count As Integer, ... )
    Dim args As cva_list

    '' get the first argument only
    cva_start( args, count )
    Print cva_arg( args, Integer )
    cva_end( args )

    '' restart and get all the arguments
    cva_start( args, count )
    For i As Integer = 1 To count
        Print cva_arg( args, Integer )
    Next
    cva_end( args )

End Sub

proc( 4, 4000, 300, 20, 1 )

end GeSHi

版本

  • 自 fbc 1.07.0 起支持

方言差异

  • -lang qb 方言中不可用,除非使用别名 __cva_start 引用。

与 QB 的差异

  • FreeBASIC 新增特性

另请参阅

返回 目录

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