|
2 / 2 / 0
Регистрация: 20.01.2010
Сообщений: 40
|
|||||||||||
Структурированные типы данных07.06.2012, 09:08. Показов 5430. Ответов 2
Метки packed, packed array, packed record, pas, pascal, record field alignment, выравнивание в памяти, выравнивание по границам, память, по границам слов, упакованные записи, упакованные массивы, упакованные структуры (Все метки)
Любой из структурированных типов (а их в делфи 4: массивы, запписи, множества и файлы) характеризуются множественностью образующих этот тип элементов.
Как следует понимать в этом предложении слово "множественность"? Слово packed перед описанием компилятора предписывает компилятору по возможности экономить память, отводимую под объекты структурированного типа. Как понимать эту фразу? Компилятор же не обладает интеллектом, как он может "экономить"?? Как понимать описание:
Как понимать такое описание:
В чём смысл фразы: В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших индексов к старшим наиболее быстро меняется самый правый индекс массива. ? Как распределяется память в динамическом массиве? Что такое вообще память? Что значит инициализи ровать массив? Зачем использовать функцию Finalize? Чем принципиально отличается динамический массив от статического? Только тем, что статический формируется на стадии компиляции, а динамический в процессе работы программы? Что от этого меняется??
0
|
|||||||||||
| 07.06.2012, 09:08 | |
|
Ответы с готовыми решениями:
2
Структурированные типы данных Структурированные типы данных (двухмерные массивы) |
|
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
|
||||||||||||||||||
| 07.06.2012, 14:35 | ||||||||||||||||||
|
Для начала расскажу по первым двум вопросам - по структурированным типам и про неупакованные/упакованные структуры.
--- Про упакованные/неупакованные структуры лучше пояснить на примере. Создадим проект Delphi, кинем на форму кнопку и в качестве обработчика события OnClick этой кнопки напишем такой код:
На этой закладке убираем галочку в опции "Optimization". И смотрим какой вид выравнивания применяется в данный момент. - Это поле "Record field alignment". По умолчанию, в этом поле установлено значение = 8. - Это означает, что компилятор будет располагать в памяти данные с выравниванием по границе 8-мибайтных слов. Теперь, на примере этой программы будем наблюдать, как изменится размер и расположение в памяти структур типа TRec в зависимости от того, как определён этот тип. Так:
6
|
||||||||||||||||||
|
2 / 2 / 0
Регистрация: 20.01.2010
Сообщений: 40
|
|
| 21.06.2012, 01:07 [ТС] | |
|
Большое спасибо, я понял, что означает слов packed.
Хотелось бы теперь понять назначение динамической памяти. Также с тех пор накопилось очень много вопросов: для чего применять логические операции к операндам целого типа? Зачем нужны логические операции "левый сдвиг" и "правый сдвиг"? Для динамических алгоритмов? Мощность типа - это суммарная длина этого типа во внутреннем представлении, не может превышать 2 ГБ. Это так? Плохо понимаю определение записи. Запись - это упорядоченный набор полей. Так? Плохо понимаю отличие множественного типа от динамического массива. Для чего вообще нужен множественный тип, если есть перечисленный? Плохо понимаю отличия динамических массивов от статических: динамический создаётся в процессе выполнения программы, а статический на стадии компиляции. Ну и что? Какая польза от этого, как это позволяет экономить память? Где хранится динамический массив? В динамической памяти? Что такое динамическая память? Особая область памяти, отвечающая за взаимодействие с ядром ОС? А статический где размещается? Чем отличается оперативная память от динамической?
0
|
|
| 21.06.2012, 01:07 | |
|
Помогаю со студенческими работами здесь
3
Структурированные типы данных. Одномерные и двумерные массивы Структурированные типы данных. файлы. работа с текстовыми файлами. Типы данных Типы данных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|