С помощью shr/shl и and, можно обойтись буз указателей и лишних переменных если что
С помощью shr/shl и and, можно обойтись буз указателей и лишних переменных если что
Последний раз редактировалось Валенок; 03.09.2014 в 10:51.
Превратить в реал да будет нужен указатель, но я то про перемещение байт имел ввиду, а 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);
Последний раз редактировалось Yegor; 30.05.2015 в 19:09.
Может kavoo имел ввидуУказатели приходится заранее объявлять
без объявления указателей ?Код:PROGRAM PLC_PRGVAR tr1, tr2: ARRAY [0..1] OF BYTE; END_VAR SysMemCpy(adr(tr1), adr(tr2), 1);
А много где можно именно преобразовать? И вроде выше - не преобразование, а другая точка зрения.В данном компиляторе REAL в DWORD неявно преобразовать нельзя
Например - кирпич. Строитель видит материал для стр-ва, математик - параллепипед, повар - гнет для квашения.. Но объект при этом не меняется.