С помощью shr/shl и and, можно обойтись буз указателей и лишних переменных если что
Вид для печати
С помощью shr/shl и and, можно обойтись буз указателей и лишних переменных если что
Превратить в реал да будет нужен указатель, но я то про перемещение байт имел ввиду, а rol это продвинутое смещение, примитив то всёравно shr
Ну, да-да, POINTER TO _ТИП_ (в том числе POINTER TO ANY, между прочим, если речь о третьем кодесисе). Сути не меняет. ADR возвращает DWORD. Почему не могли сделать, чтобы возвращался указатель того же типа, что и аргумент, теперь остаётся только гадать.Цитата:
Так в КДС нету "просто POINTER"
Наверное для того чтоб ты мог пихнуть свой массив или там структуру в любое место памяти ПЛК, где можно обявить прямоадресуемую переменную.
Хи-хи. Пример запихивания?Цитата:
чтоб ты мог пихнуть свой массив
Можно сказать, что в КДС нет функции или оператора получения указателя. Есть только функция получения адреса типа DWORD, что не является указателем в системе типов компилятора.
Тайп мисмач не случается, когда есть неявное преобразование. В данном компиляторе REAL в DWORD неявно преобразовать нельзя, POINTER в DWORD — можно. Вот этот код демонстрирует неявное преобразование указательного типа в числовойЦитата:
"тип мисмач"
На месте аргументов спокойно уже сейчас может стоять аналог ADR, возвращающий не число, а указатель, но такого аналога нет. Другими словами, операции взятия указателя в кодесисе просто нет. Указатели приходится заранее объявлять, а потом инициализировать через обратное приведение (тоже неявное — DWORD в POINTER).Код:PROGRAM PLC_PRGVAR
ptr1, ptr2: POINTER TO ARRAY [0..1] OF BYTE;
END_VAR
SysMemCpy(ptr1, ptr2, 1);
Может kavoo имел ввидуЦитата:
Указатели приходится заранее объявлять
без объявления указателей ?Код:PROGRAM PLC_PRGVAR
tr1, tr2: ARRAY [0..1] OF BYTE;
END_VAR
SysMemCpy(adr(tr1), adr(tr2), 1);
А много где можно именно преобразовать? И вроде выше - не преобразование, а другая точка зрения.Цитата:
В данном компиляторе REAL в DWORD неявно преобразовать нельзя
Например - кирпич. Строитель видит материал для стр-ва, математик - параллепипед, повар - гнет для квашения.. Но объект при этом не меняется.