CVA_START
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgCvaStart
- 最后更新: 2021-10-11
初始化可变参数列表对象变量的宏
语法
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_list 的 cva_end 后,argument_list 可以被重用,并通过另一次 cva_start 调用重新初始化。cva_start 和 cva_end 调用必须在同一过程中成对调用(为了跨平台兼容性)。
cva_copy 与 cva_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 新增特性
另请参阅
- ... (Ellipsis)
cva_argcva_copycva_endcva_list
返回 目录