Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Размер множества   Найти похожие ветки 

 
Германн ©   (2006-10-23 16:01) [0]

То ли я совсем тупой, то ли...
Есть следущие типы:
 TPin = (A1,B1,C1,A2,B2,C2,A3,B3,C3,A4,B4,C4,A5,B5,C5,A6,B6,C6,None);
 TPinSet = Set of TPin;

Я работал в полной уверенности, что SizeOf(TPinSet) = 3. А глянул в Evaluate/Modify, он показывает, что размер = 4. Ну откуда 4? Во множестве всего 19 бит?


 
Dmitrij_K   (2006-10-23 16:04) [1]

выравнивание ?


 
Ketmar ©   (2006-10-23 16:05) [2]

оттуда, что с LongWord работать проще. при $Z1 и восьми битах будет байт. при $Z2 и восьми битах будет слово. при $Z4 и восьми битах будет двойное слово.
для 16 бит -- слово, слово, двойное слово.
если бит больше 16 -- двойное слово, двойное слово, двойное слово.


 
default ©   (2006-10-23 16:24) [3]

TPin = (A1, A2, A3, A4, A5, A6, A7, A8,
         A9, A10, A11, A12, A13, A14, A15, A16,
         A17, A18, A19, A20, A21, A22, A23, A24,
         A25, A26, A27, A28, A29, A30, A31, A32,
         A33, A34, A35, A36, A37, A38, A39, A40);

даст пять байт
и не более
команда включения элемента во множество работает с 32-разрядными операндами в 32 оси
делов


 
default ©   (2006-10-23 16:25) [4]

короче говоря на низком уровне команды обслуживающие множества работают с 32-разрядными операднами


 
default ©   (2006-10-23 16:26) [5]

TPinSet даст пять байт...ну короче понятно и так думаю...


 
Германн ©   (2006-10-23 16:46) [6]

Проблему решил, но так и не понял причём тут директива $Z, относящаяся к enumerated type и множества. Ладно, вечером буду читать и экспериментировать. Сейчас поеду ставить программу на объект.


 
Anatoly Podgoretsky ©   (2006-10-23 16:49) [7]


> не понял причём тут директива $Z, относящаяся

Определяет выравнивание, величина по умолчанию зависит от версии Дельфи


 
default ©   (2006-10-23 17:08) [8]

по-моему выравнивание тут не причём
а лишь причём разрядность процессора
что с изменением выравнивания что-то меняется?


 
Ketmar ©   (2006-10-23 18:01) [9]

$Z задаёт размер по-умолчанию.


 
Германн ©   (2006-10-23 22:37) [10]

Да нет. Директива $Z не имеет никакого отношения к размеру множества.
Эксперименты показали, что компиллятор просто ненавидит размер множества = 3. И добавляет к необходимым 3-м байтам множества четёртый нулевой. Любой другой размер 1,2,4,5,6,7 и т.д. считается нормальным. Наверно в какой-нибудь умной книжке и объяснено чем 3 хуже прочих, но мне искать лень. Просто запомню на будущее.


 
Loginov Dmitry ©   (2006-10-23 23:28) [11]

Германн ©   (23.10.06 16:01)
Я работал в полной уверенности, что SizeOf(TPinSet) = 3


Хорошо, не 3.5

%)))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
4-1153829366
sVic
2006-07-25 16:09
2006.12.03
Как определить владельца файла(NTFS)


4-1153296669
Интересующийся
2006-07-19 12:11
2006.12.03
Два вопроса о региональных стандартах


1-1160747187
Ангела
2006-10-13 17:46
2006.12.03
Подскажите простой компонент для создания zip архивов


2-1163602889
Новый_Юзер
2006-11-15 18:01
2006.12.03
Панель инструментов и кнопки с картинками из ImageList a


15-1163174057
Колдун1111111
2006-11-10 18:54
2006.12.03
АЦП последовательного приближения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский