FreeBASIC学习笔记——6.4 可变参数

        用于代替过程参数来传递可变数量的参数,或用作数组声明中的上限,以表示元素数量将由初始化程序确定。语法:

FreeBASIC学习笔记——6.4 可变参数

        省略号(三个点,...)用于过程声明和定义以表示可变参数列表。必须始终指定第一个参数,并且必须使用C调用约定Cdecl调用该函数。在过程主体中,va_first,va_arg和va_next用于处理变量参数。va_first用于返回指向变量参数列表中第一个参数的指针;va_arg用于从变量参数列表返回当前参数;va_next用于返回指向可变参数列表中下一个参数的指针。函数或者过程的可变参数列表只支持数字类型和指针作为参数。可以传递字符串,在这种情况下,将采用ZString Ptr到字符串数据。

        使用省略号代替数组声明中的上限会导致根据表达式列表中出现的数据设置上限。当以这种方式使用省略号时,必须使用初始化程序,并且不能设置为Any。

        在#Define或#Macro声明中使用最后一个参数后面的省略号可以创建一个可变宏。这意味着可以将任何数量的参数传递给参数变量,这可以在Body 中使用,就像它是一个普通的宏参数一样。参数变量将扩展到传递给它的参数的完整列表,包括逗号,也可以完全为空。

例如:

FreeBASIC学习笔记——6.4 可变参数