Ну задал вопрос так задал!!!!
Ни когда не пробовал сии параметры. Насколько понял из описания: ByVal при обращении к процедуре значение переменной не меняется(создается локальная копия с которой и происходят изменения)(по умолчанию)
ByRef при этом изменяются значения переменной в зависимости от выполняемых в (функции, процедуре)
Code
include "USART.bas"
include "Convert.bas"
sub NoChange(pValue as byte)
pValue = 10
end sub
sub ChangeValue(byref pValue as byte)
pValue = 10
end sub
dim Value as byte
SetBaudrate(br19200)
Value = 0
NoChange(Value)
USART.Write("Value : ", DecToStr(Value), 13, 10)
ChangeValue(Value)
USART.Write("Value : ", DecToStr(Value), 13, 10)
при вызове функции NoChange(Value) значение Value не изменяется
при вызове функции ChangeValue(Value) значение Value равно 10(см. функцию)
ByRefConst тут посложнее. Что то связанное с экономией памяти при работе с постоянными константами(что бы не использовать ОЗУ процессора.
Гугл дал такой перевод:
Существует и третья передачи параметров механизма, который используется главным образом для постоянных массивов. Микроконтроллера ПИК ™, постоянная массивы хранятся в отличие от памяти данные которых требует использования byrefconst. Это гарантирует, что диск адрес передается и не ОЗУ адрес. Например,
Code
include "USART.bas"
const Names(3) as string = ("David", "Fred", "Peter")
sub DisplayNames(byrefconst pNames() as string)
dim Index as byte
for Index = 0 to bound(pNames)
USART.Write(pNames(Index), 13, 10)
next
end sub
SetBaudrate(br19200)
DisplayNames(Names)
то бишь pNames не создается как константа в памяти проца, а читается напрямую из const Names() Ну и на сладкое inline и noinline
Ни чего не понятно, но что то связанное с блокировкой вызова данной за оператором функции и компиляцией программы. Якобы увеличивает скорость(из за исключения переходов к подпрограммам) , но и так же размер компилируемой программы.
Прошу прошения что не как то невнятно, сам еще учусь. Надеюсь разъяснил.
P/S. Если непонятно есть переводчик Google http://translate.google.ru/?js=y&p....#submit
перевожу когда самому непонятно, не идеально, но врубиться можно