Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Если ли в DELPHI трех байтовй тип ? [D6]


Страницы:   1 2 3

NikNet ©   (2005-08-24 17:29:00) 

Проблема надо создать структуру

t = REcord
b:Byte;
tr: три байта ? :(
end;


tesseract   (2005-08-25 18:38:00) [21]

>> Если хотите, то пусть будет "ещё".
Не уверен, что хочу. А то ещё ограничат массив 256 символами...


Fay   (2005-08-25 18:27:00) [22]

2 tesseract ©   (25.08.05 18:11) [21]
>> целые числа уже enumerated ????
Если хотите, то пусть будет "ещё".
8)


Fay   (2005-08-25 18:26:00) [23]

2 Bless ©   (25.08.05 17:47) [19]
Что-то я не понял... Вы серьёзно объъясняете мне, что 1 байт весит 1 байт?! Дожил.

Я говорил именно про "выделяемый размер".


tesseract   (2005-08-25 18:11:00) [24]

>>enumerated types
А что массив или целые числа уже enumerated ????

вроде как массивы относятся к структурам а байта - к ordinal;

>>to Bless
Согласен, оплошал.... :-((((


tesseract   (2005-08-25 18:06:00) [25]

>>Буду признателен, если ткнете меня носом в то место, где хранится >>информация о длине статического массива.
>>Имхо, такого места нет, но вдруг я ошибаюсь.

Это служебная информация, насколько помню находится перед массивом, как и у Pascal-строки(она ведь массив char).


Bless   (2005-08-25 17:47:00) [26]

[i]Fay ©  (25.08.05 17:28) [18]

2 tesseract ©  (25.08.05 13:44) [9]
>> И вообще все значений всё равно компилятором до 4 байт добиваются

Только при {$Z4}
[/i]
{$Z} влияет на выделяемый размер под переменные enumerated types.
Так что "все значения компилятором до 4 байт" даже с этой директивой не "добиваются". Переменная типа byte по-прежнему будет занимать один байт.


Fay   (2005-08-25 17:28:00) [27]

2 tesseract ©   (25.08.05 13:44) [9]
>> И вообще все значений всё равно компилятором до 4 байт добиваются

Только при {$Z4}


Bless   (2005-08-25 15:02:00) [28]

tesseract ©  (25.08.05 13:58) [12]
Ни фига не понял зачем такая радость ( массив да в записи если можно type Myrec= array[1..3] of byte;)
Займёт 3 байта + информация о длине массива.


Буду признателен, если ткнете меня носом в то место, где хранится информация о длине статического массива.
Имхо, такого места нет, но вдруг я ошибаюсь.


Игорь Шевченко   (2005-08-25 14:40:00) [29]


> И вообще все значений всё равно компилятором до 4 байт добиваются
> ( чтобы intel шустрее работал).


Не затруднит ли уважаемого автора поведать, в какой именно месте компилятор добивает значения до 4-х байт ?


Bless   (2005-08-25 14:39:00) [30]


tesseract ©  (25.08.05 13:58) [12]

MyRec = record
 A,B,C:byte
end;
Займёт 12 байт


3 байта займет, а не 12.


tesseract   (2005-08-25 14:18:00) [31]

>>>Джо
>>неправда ваша.
>Мне все-таки интересно в чем я не прав...

Мне честно говоря тоже


ArtemESC   (2005-08-25 14:00:00) [32]

>>Джо
>неправда ваша.
Мне все-таки интересно в чем я не прав...


tesseract   (2005-08-25 13:58:00) [33]

>> Даже Byte?

Даже byte.
поэтому такой тип данных

MyRec = record
   A,B,C:byte
 end;

Займёт 12 байт

такой

MyRec = packedrecord
   A,B,C:byte
 end;

Займёт 3 байта


MyRec = packed record
   A:array[1..3] of byte;
 end;


Ни фига не понял зачем такая радость ( массив да в записи если можно type Myrec= array[1..3] of byte;)
Займёт 3 байта + информация о длине массива.

Кстати определение массива как начинающегося с нуля немного повысит производительность. Так легче найти элемент массива в памяти.


Джо   (2005-08-25 13:52:00) [34]


> [9] tesseract ©   (25.08.05 13:44)

И ваша неправда.


ArtemESC   (2005-08-25 13:47:00) [35]

>>И вообще все значений всё равно компилятором до 4 байт >>добиваются

Даже Byte?


tesseract   (2005-08-25 13:44:00) [36]

>>>T3Byte = 0..$FFFFFF
Будет он 4 байтным. просто значений больше FFFFFF принимать не будет.
И вообще все значений всё равно компилятором до 4 байт добиваются ( чтобы intel шустрее работал).


Джо   (2005-08-25 13:43:00) [37]


> [7] ArtemESC   (25.08.05 13:38)
>  T3Byte = 0..$FFFFFF

Неправда ваша.


ArtemESC   (2005-08-25 13:38:00) [38]

>>Если ли в DELPHI трех байтовй тип?
 T3Byte = 0..$FFFFFF


tesseract   (2005-08-25 11:05:00) [39]

>>По моему Integer трех байтовый?

Зависит от типа ОС
DOS - 2 байта
Windows/*nix/netware/ - 4 байта
Win64/*nix 64 - 8 байт


Игорь Шевченко   (2005-08-24 17:48:00) [40]

А почему бы какую книжку умную по Delphi не почитать ?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо