|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Что-то не понятно в указателях
Приветствую всех!
Перевожу проект с Delphi на другой язык и почти запутался, вроде всё понятно, но как оказывается не совсем: Имеем структуру: type Код:
TSomeStruct= record firstfield byte; .... lastfield byte; end PSomeStruct = ^TSomeStruct var Display : PSomeStruct; ... Код:
for i := 0 to Sizeof(TSomeStruct) - 2 do Row := (Row + byte(PChar(Display)[i])) mod $100; Правильно ли я понимаю, что мы идем с первого byt'a структуры до последнего - 2 и делаем преобразование переменной ? Немного не понятно предназначение PChar в данном контексте. Кто бы смог разъяснить? Спаибо за помощь! |
#2
|
|||
|
|||
Дело в том, что прямая адресная арифметика для указетелей в Дельфи запрещена. Поэтому указатель преобразуется к типу PChar для того, что бы добраться до каждого байта данных.
Вообще, впечатление, что это какой-то аогритм расчета контрольной суммы. |
#3
|
|||
|
|||
Да совершенно, верно. Вот только контрольная сумма у меня расчитывается не правильно Таких расчётов довольно много и перенести их не составило особого труда, а здесь затык. Возможно не совсем те исходники
|