假定为 'USUAL' 类型,未类型化的参数 '{0}' 和 '{1}' 的调用约定不正确。
以下代码会产生此错误:
FUNCTION Test1(c as string, i ) as string // warning XS9118: 假定为 'USUAL' 类型,未类型化的参数 'i' 和 'STRICT' 的调用约定不正确。
return c
省略其他参数的类型是允许的,因为在这种情况下,该参数将获得与后面参数相同的类型。在下面的示例中,c 和 i 的类型都是 int。
FUNCTION Test2(c, i as int) as string
return c
如果省略所有类型,例如下面的代码
FUNCTION Test3(c, i ) as string
return c
则编译器将生成一个 CLIPPER 调用约定的函数(或方法)。所有参数都将是 USUAL 类型,并且所有参数都是可选的。您可以随心所欲地使用多个参数调用该函数。当然,您需要在函数内部编写代码,检查参数及其类型是否正确。
在处理 CLIPPER 调用约定时,X# 编译器将生成一个 USUAL[] 类型的新 PARAMS 参数,并为每个已声明的参数创建局部变量,同时将 PARAMS 数组中的正确元素赋值给局部变量。