Хорошо. Там действительно не все понятно, я думаю.
Итак, у меня в программе есть большое количество переменных (я их называю параметрами), к которым я боращаюсь обычным образом. Беру их значение, использую в выражениях, записываю, сохраняю в RETAIN или нет - все чин чинарем.
Но именно эти переменные-параметры объединяет то, что в определенных функциях (очень иногда, кстати) обращаться к ним удобно через индекс, как к элементам массива. И при этом существует ряд свойств каждого параметра, которые задаются еще до компиляции. Ну, например, предельные значения параметра. Эти свойства извлекать тогда тоже удобно из массива - по тому же индексу.
Так вот, есть массив структур, содержащих все свойства каждого параметра:
Код:
TYPE PARSCRIPT :
STRUCT
Numb: WORD;
Typ: PARTYPE;
Point: BYTE;
Mdf: RW_ACCESS;
Node: OWNER_NODE;
Mini: DINT;
Maxi: DINT;
Ptr: POINTER TO DWORD;
END_STRUCT
END_TYPE
Вот объявление этого массива:
Код:
VAR_GLOBAL
apsPar: ARRAY [0..MAX_PAR_INDX] OF PARSCRIPT;
END_VAR
Используя где-то в проге [I]apsPar.Ptr, я могу извлечь самое переменную или записать ее на свое место. По указателю, коим является элемент структуры [I]apsPar.Ptr.
Как видите, указатели-то указывают на адрес переменной, вполне фиксированный. Вот я и говорил о том, что объявить массив структур вполне можно было с CONSTANT.
Оказалось, что можно. Но только инициализировать пойнтер значением адреса данных (любых - хоть констант, хоть переменных) - нельзя.
Сам не знаю, зачем так подробно поясняю. Все равно сейчас Вы воскликнете "Проект - в студию!"
И что после этого? У Вас есть предположения, как же объявить константный указатель? Отвлекаясь от того, нафига он мне