1

我正在开发一个庞大的代码,我想使用函数将其分解为更易读的块并多次重用它们。问题是我应该在我的所有函数中使用 len 函数,而且 Bascom 似乎有一些问题。这是我的示例代码,它完全包含问题:

Declare Function Getlen(byval Str1 As String) As word
Dim Bvar As Byte
Bvar ="hello"
Do
Bvar =Getlen(bvar)
Bvar = Len(bvar)
Loop
End


Function Getlen(byval Str1 As String) As Word
   Getlen = Len(str1)
End Function

这是我从 Bascom 编译器错误 71,242,124 得到的错误,全部在函数调用行上,当我使用

Bvar = Len(bvar)

它会正常工作。
在此处输入图像描述

4

1 回答 1

1

您混合了数据类型。字节 Bvar 不能保存字符串 hello。你的函数应该被声明为字节,而不是字。在 Bascom Simulator 中试试这个例子:

$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 64
$swstack = 0
$framesize = 64


Declare Function Getlen(byval Str1 As String) As Byte

Dim Mylen As Byte

Dim Mystring As String * 10 : Mystring = "hello"

Print Mystring

Mylen = Getlen(mystring)

Print "Mylen=" ; Mylen


Do

Input "Enter any name: " , Mystring

Mylen = Getlen(mystring)

Print "Mylen=" ; Mylen

Loop


Function Getlen(byval Str1 As String) As Byte
    Getlen = Len(str1)
End Function
于 2020-01-19T03:21:40.160 回答