User manual
215 C-Control Pro IDE
© 2013 Conrad Electronic
End While
Return i
End Sub
Sub main()
Dim Len As Integer
Dim Text(15) As Char
Text="hallo welt"
Len=StringLength(Text)
End Sub
In main wird die Referenz von Text als Parameter an die Funktion StringLength übergeben. Ändert
man in einer Funktion einen normalen Parameter, so ist die Änderung außerhalb dieser Funktion
nicht sichtbar. Bei Referenzen ist dies anders. Über den Parameter str kann man in StringLength
den Inhalt von text ändern, da str nur eine Referenz (ein Zeiger) auf die Array Variable text ist.
Man kann zur Zeit nur Arrays "by Reference" übergeben!
Zeigerarithmetik
In der aktuellen C-Control Pro Software ist auch Arithmetik auf einer Referenz (Zeiger) erlaubt, wie
das folgende Beispiel zeigt. Die Arithmetik ist auf Addition, Subtraktion, Multiplikation und Division
beschränkt.
Sub main()
Dim Len As Integer
Dim Text(15) As Char
Text="hallo welt"
Len=StringLength(Text+2*3)
End Sub
Die Zeigerarithmetik ist zur Zeit experimentell und kann eventuell noch Fehler enthalten.
Strings als Argument
Seit Version 2.0 der IDE kann man nun Funktionen mit einem String als Argument aufrufen. Die auf-
gerufene Funktion bekommt die Zeichenkette als Referenz übergeben. Da aber Referenzen im RAM
stehen müssen, und vordefinierte Zeichenketten im Flashspeicher stehen, erzeugt der Compiler in-
tern vor Aufruf der Funktion einen anonymen Speicherplatz auf dem Stack und kopiert die Daten aus
dem Flash dorthin.
Sub StringLength(ByRef str As Char) As Integer
....
End Sub
Sub main()
Dim Len As Integer