Показано с 1 по 8 из 8

Тема: Адресация элементов массива через ссылки REFERENCE TO Возможно ли такое?

  1. #1

    По умолчанию Адресация элементов массива через ссылки REFERENCE TO Возможно ли такое?

    Имеется некий массив
    stServoDrivePrms: ARRAY[0..1] OF DRIVE_PARAMS;

    через указатель доступ к элементу массива через SIZEOF(DRIVE_PARAMS)*i // i - индекс массива

    А если я хочу через ссылку
    refstServoDrivePrms: REFERENCE TO DRIVE_PARAMS;
    refstServoDrivePrms REF= stServoDrivePrms[0];
    можно ли получить ссылку к следующему элементу массива и как это сделать? В документации об этом вообще ни слова. Я так понимаю механизм не реализован?

    Заранее признателен

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    9,678

    По умолчанию

    В документации как раз есть как нельзя объявлять, может это уже раз тот случайScreenshot_2021-06-13-16-28-28-253_com.opera.browser.jpg
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Это я прочитал и так не объявлял. Мне в принципе хотелось бы понять что такое REFERENCE. С указателем все понятно - физический адрес в памяти где хранится переменная (с неким базовым типом) на которую "смотрит" указатель. Соответственно зная структуру переменной, при помощи SIZEOF(BASETYPE) можно задавать смещение, и если это массив, обращаться к его элементам.
    А ссылка что за зверь? В отладчике я ничего не вижу - пусто.
    (Скрин во вложении)
    В документации написано - типа гибко, лучше указателей, а по факту - ВОТ! Я хрен пойму как с ними и работать?
    Видимо прийдется возвращаться к старым-добрым указателям
    Изображения Изображения
    Последний раз редактировалось RomeoVar; 13.06.2021 в 17:04. Причина: ДОполнил

  4. #4

    По умолчанию

    Цитата Сообщение от RomeoVar Посмотреть сообщение
    А ссылка что за зверь?
    Добрый день.

    Ссылка - строго типизированный указатель. Компилятор проверяет соответствие типов при использовании ссылок, при работе с указателями - нет. Т.е. в REFERENCE TO REAL можно отдать переменную только типа REAL.

    Цитата Сообщение от RomeoVar Посмотреть сообщение
    В отладчике я ничего не вижу - пусто.
    На скрине видно, что у Вас ссылка на структуру. Нажмите на "+" и увидите значения, если они туда пришли.

  5. #5

    По умолчанию

    Вот еще раз проверяю. Смотрите скрин
    stDrivePrms; POINTER TO DRIVE_PARAMS;
    refstDrivePrms; REFERENCE TO DRIVE_PARAMS;


    Переменная-указатель содержит адрес, а разыменованная переменная-указатель содержит значения хранящиеся в памяти, выделенной для этого типа переменной. Поэтому я даже не раскрывая структуру вижу значение области памяти

    Переменная-ссылка не содержит ничего, там пусто.
    Почему так?
    А значения мне не нужны, вопрос по-моему понятен Адресация элементов массива через ссылки REFERENCE TO Возможно ли такое?
    Изображения Изображения

  6. #6

    По умолчанию

    Цитата Сообщение от RomeoVar Посмотреть сообщение
    А значения мне не нужны, вопрос по-моему понятен Адресация элементов массива через ссылки REFERENCE TO Возможно ли такое?
    Если мы говорим о том, чтобы через полученную ссылку получить значение следующего элемента в массиве, то нет.
    По ссылке действительно нет явного адреса памяти для его обработки.

  7. #7

    По умолчанию

    Тогда всек понятно. Это абсолютно бесполезная приблуда. Из преимуществ - Типовая безопасность на уровне компилятора. Но преимущество весьма сомнительное

  8. #8

    По умолчанию

    Тему закрыл

Похожие темы

  1. Отображение элементов массива на кадре
    от Спорягин Кирилл в разделе ПЛК (среда программирования MasterSCADA 4D)
    Ответов: 3
    Последнее сообщение: 07.11.2018, 15:47
  2. Модернизированный ПЛК100-24КЛ, возможно ли такое
    от Евгений_Томск в разделе ПЛК1хх
    Ответов: 32
    Последнее сообщение: 14.01.2015, 20:46
  3. Возможно ли такое в СП270
    от Ильнур в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 18.06.2012, 08:45
  4. Возможно ли такое подключение
    от Ильнур в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 19.05.2012, 11:56
  5. ТРМ32-Щ7.TC.RS (2011 г.в.) + ИП320 такое возможно?
    от Алексей Николаев в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 22.12.2011, 22:49

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •