
Сообщение от
Вольд
Владимир, сколько переменных типа DWORD можно объявить в программе PRU ?
Штук 30.
Но всё зависит от того, сколько из них реально используются.
Например, в следующем коде "используются 3 DWORD переменные", но в результирующей PRU программе используется только 4 байта из регистровой памяти.
Код:
a,b,c:DWORD;
a:=1;
b:=a+1; (* на этом этапе значение a уже не нужно и по факту, "b" размещается в той же ячейке, что и "a" *)
c:=b+1; (* аналогично, "c" размещается в той же ячейке, что и "b" *)
(* далее чтений переменных "a" и "b" нет *)
Т.е. если нужна переменная для временных вычислений в одном конкретном месте, то лучше взять и объявить эту самую переменную.
Компилятор должен понять, что после этих временных вычислений значение больше не используется, и сможет переиспользовать этот регистр.
Если же для всех промежуточных вычислений использовать одну-единственную переменную, то компилятор наглухо зарезервирует регистр за этой переменной, хотя он и нужен только эпизодически.