从CRBasic中的子返回值 _Campbellsci论坛问答

大家好,

我想从CRBasic程序中的子例程返回一个值。内置函数可以做到这一点,但我在帮助中找不到任何关于它的信息。

从CRBasic中的子返回值
_Campbellsci论坛问答

这就是我希望我的函数工作的方式:

var_1=my_函数(var_2,var_3)

有人能告诉我吗?

当做

博·霍尔姆·拉斯穆森

新对话如下:

到目前为止,CRBasic还不支持函数,只支持带参数的子程序。然而,CR1000(及其合作伙伴)的下一个固件版本将包括对功能的支持。该操作系统(CR1000的16版)现在随时都会出现在街头,并且应该在第二天左右从该网站下载。作为一名品尝者,这里有新功能支持的帮助(很抱歉格式化):

----

函数/EndFunction声明用于创建用户定义的函数。

语法
--------
函数(可选参数)可选As DataType

返回(表达式)(可选)

退出功能(可选)

结束函数
---------
评论

Function/EndFunction声明类似于子例程声明(Sub/EndSub)。默认情况下,Function是Float,但它可以指定为String(具有可选的*大小)、Long或Boolean。它包括传入可选参数的功能。与子例程声明一样,参数列表描述了局部参数及其类型(Float、Long、Boolean、String)。如果未指定,则默认参数类型为“浮点”。Sub和Function之间的一个区别是Function返回值,而子程序则不返回值。

函数名及其参数的调用与内置函数一样;即通过简单地将它们的名称与表达式中的任何地方的参数一起使用。当调用函数时,参数会复制到函数的本地参数列表中,就像调用子例程时一样。然而,与子程序不同的是,子程序在退出时会将本地参数值复制回传入的任何变量,函数不会进行这种复制,而是返回调用函数的表达式所使用的值。

Return或ExitFunction在运行时退出函数。EndFunction终止Function声明,并在运行时退出该函数。函数返回的表达式由Return(表达式)指定,或者,如果Return未在EndFunction或ExitFunction之前执行,则通过将表达式赋值给函数名称来指定返回值。如果这两种方法都没有使用,则返回NAN。

函数最多可以嵌套两个深度。如果函数声明包含对另一个函数的调用,而该函数又包含对某个函数的访问,则返回编译器错误。

新对话如下:

您可以使用子例程传递变量。调用语句中程序变量/值的编号和顺序必须与子声明中变量列表的编号和序列匹配。在子例程内更改此列表中的一个变量的值会更改在调用过程中传递给它的变量的值。因此,从本质上讲,您现在可以创建函数了。

请参阅下面的示例代码。


公共PTemp,电池电压
公共MyVar1、MyVar2、MyResult
公用变量1、变量2、结果

'定义数据表
数据表(测试,1,-1)
数据间隔(0,1,秒,10)
示例(1,MyResult,IEEE4)
示例(1、MyVar1、IEEE4)
示例(1、MyVar2、IEEE4)
床头柜

子函数1(结果,变量1,变量2)
结果=变量1+变量2
EndSub公司

'主程序
开始进度
扫描(1,秒,0,0)
MyVar1=MyVar1+1
MyVar2=MyVar2+10
函数1(MyResult、MyVar1、MyVar2)
调用表测试
下一次扫描
结束程序

新对话如下:

包括功能支持的新操作系统现在可以从 http://www.campbellsci.com/downloads

A.

*最后更新者:aps于2008年11月12日上午5:39*

分享到:

原文链接:,转发请注明来源!
海洋仪器网 仪器使用 从CRBasic中的子返回值 _Campbellsci论坛问答
「从CRBasic中的子返回值 _Campbellsci论坛问答」评论列表

发表评论