Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Pointer-константа: как инициализировать?

  1. #11
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от валенок Посмотреть сообщение
    тема ушла
    ну и зря. конечно, я внимательно прислушиваюсь к твоему мнению. конечно, я понимаю, что пафоса та тема не стоит. но - почему не поговорить спокойно?

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

    делаю аналогию с типом дата и целое. сумма двух дат - бессмысленна. а разность - скока нам дней
    так же дата + целое = новая дата. так чем это полохо? только тем, что в нынешней версии кдв его нет?

    как ты пишешь, прокол в кдс не умаляет нашего к система почтения. согласен!
    но и отсутствие чего-то в кдс не умаляет моего уважения к возможности реализации этого чего-то

  2. #12
    Пользователь
    Регистрация
    15.12.2006
    Адрес
    Калуга
    Сообщений
    157

    По умолчанию

    TO "DRVLAS" : не ужели вы УВАЖАЕМЫЙ не поняли - CoDeSys v2.3 давно закрыт, заброшен как пройденный этап. Это примерно то же, что просить добавить что то в ФОРТРАН. Хоть кто то помнит что это такое.
    Я еще раз призываю вспомнить чему их учили в школе, институте, в НИИ. КДС 2.3 никто уже не развивает, поддерживают, чтобы не упал. Это истина. И пожалейте ПЕТРОВА он хороший человек и отвечает за свои слова. Я видел исходники КДС 2.3 .
    Последний раз редактировалось Пугачев Андрей; 16.12.2010 в 11:39.

  3. #13
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от МИХАИЛ Посмотреть сообщение
    TO "DRVLAS" : не ужели вы УВАЖАЕМЫЙ не поняли - CoDeSys v2.3 давно закрыт, заброшен как пройденный этап
    Да как мне понять? Я новичек в этом. Я ничего не знаю (и пока не берусь узнавать) о версии 3. Я уверен, что мою шарабайку можно запрограммировать и не выходя за пределы 2.3... Мне говорили уважаемые мною люди здесь на форуме, что КСД - просто потрясная штука. Имея в виду, конечно, 2.3.

    Так в чем проблема?


    Если Вы настолько приближены к истокам, что знаете товарища Петрова, знаете, что
    Цитата Сообщение от МИХАИЛ Посмотреть сообщение
    он хороший человек и отвечает за свои слова
    и даже видели
    Цитата Сообщение от МИХАИЛ Посмотреть сообщение
    исходники КДС 2.3 .
    - так это же замечательно! Расскажите, изменится ли поднятый мною вопрос в версии 3. Ну, если знаете, конечно.

    А я пока буду в своем песочнике играться. Люблю я это дело...
    Последний раз редактировалось Пугачев Андрей; 16.12.2010 в 11:40.

  4. #14

    По умолчанию

    зачем? зачем вам нужны глобальные константные указатели?

    почему вы не хотите напрямую использовать те сущности, на которые они указывают?

  5. #15

    По умолчанию

    Цитата Сообщение от МИХАИЛ Посмотреть сообщение
    TO "DRVLAS" : не ужели вы УВАЖАЕМЫЙ не поняли - CoDeSys v2.3 давно закрыт, заброшен как пройденный этап. Это примерно то же, что просить добавить что то в ФОРТРАН. Хоть кто то помнит что это такое.
    Я еще раз призываю вспомнить чему их учили в школе, институте, в НИИ. КДС 2.3 никто уже не развивает, поддерживают, чтобы не упал. Это истина. И пожалейте ПЕТРОВА он хороший человек и отвечает за свои слова. Я видел исходники КДС 2.3 .
    К сожалению, 3-й кодесис еще не догнал 2.3 по функционалу. Через годик, наверное, догонит. Так что 2.3 еще долгое время будет актуален, хотя бы из-за числа ПЛК, программ и специалистов.

  6. #16
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Дмитрий Егоренков Посмотреть сообщение
    зачем? зачем вам нужны глобальные константные указатели?
    Потому, что на этапе компиляции я не могу знать, к какой сущности я обращусь. Собственно, это и есть причина появления указателей в языках программирования, ИМХО. Это похоже на массивы - ведь удобно использовать A[n] при разном n, вместо того, чтобы обращаться к каждому элементу по прямому адресу.
    А пойнтеры и массивы - почти одно и то же.

    О своей задаче я немного говорил здесь.

    В той структуре описателей переменной добавился указатель на саму переменную.

    Так что потребность есть. Иное дело, что при расположении массива структур (а в каждой из них - и указателей) в обычной памяти задача уже решена и все прекрасно работает. Спасибо Валенку. Потом подумал об альтернативе - ну, нет ее в КДС.

    Ладненько, не страшно. Еще раз - я удовлетворен. Не надо меня шпынять, что упорно требую от авторов КДС немедленных изменений Только даю сигналы...

  7. #17

    По умолчанию

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

    О своей задаче я немного говорил здесь.
    в приведенной ссылке, как и в этой ветке, есть только ваши попытки решить какую-то неизвестную нам задачу, но не сама задача.

  8. #18
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Хорошо. Там действительно не все понятно, я думаю.

    Итак, у меня в программе есть большое количество переменных (я их называю параметрами), к которым я боращаюсь обычным образом. Беру их значение, использую в выражениях, записываю, сохраняю в 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.
    Оказалось, что можно. Но только инициализировать пойнтер значением адреса данных (любых - хоть констант, хоть переменных) - нельзя.

    Сам не знаю, зачем так подробно поясняю. Все равно сейчас Вы воскликнете "Проект - в студию!"
    И что после этого? У Вас есть предположения, как же объявить константный указатель? Отвлекаясь от того, нафига он мне

  9. #19

    По умолчанию

    вы опять описываете реализацию, а не задачу, ну да ладно.

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

  10. #20
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    ну, как умею.

    Цитата Сообщение от дмитрий егоренков Посмотреть сообщение
    против ограничений платформы не попрешь -- придется вам инициализировать указатели при запуске программы.
    так и делаю. тешу себя тем, что плюсов у выбранной платформы очень много и они для меня важнее.
    вчера меня так уговаривали попробовать другие контроллеры (и российские есть), в том числе и с линухом на борту, и с экраном и без, и манюсенькие, и лишь чуть дороже плк100...
    на шару ведь дают, только пробуй. но почему-то кдс мне нравится (сейчас пока могу сказать - не на уровне понимания, а так, за красивые глазки) и я с гордым видом отказался
    надо довести хоть первый проект до конца, тогда можно оглядеться еще раз.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Ваши права

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