![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: нет Всего: 0 |
Здравствуйте.
Хочу спросить, просто интересно стало. Есть три типа
выполняющие по сути одну и туже роль, тоесть принимают значения {true, false} Состояние данного множества можно хранить в одном бите, но например Boolean весит 8 бит (тоесть получается что 7 бит незадействованны). Я предпологаю что Boolean весит 1 байт для экономии времени доступа. Но непонимаю тогда зачем существуют WordBool, LongBool ![]() Объясните пожалуйста кто понимает, зачем существуют WordBool, LongBool. |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
Все эти типы введены для совместимости с другими языками. Чтобы, к примеру, в своей программе можно было импортировать и использовать функцию из DLL, написанной на другом языке.
Потому что нет однозначного формата внутреннего представления логического типа. Сколько байт нужно отвести под логический тип? У каждого языка есть своя версия. В Delphi взяли 1 байт и обозвали его Boolean. В вымышленном языке ABC решили, что раз 32-х разрядный процессор оптимальнее всего работает с 4-х байтными величинами, то и логический тип должен "весить" 4 байта. И т.д. Кроме того, нет и единого мнения, как представлять значения True в логических типах. Насчёт False тут все солидарны: 0 - и без разговоров. А что насчёт True? Delphi считает (как и большинство языков), что True - это когда переменная <> 0. При присвоении True в Delphi присваивается 1. В других языках - -1 (или $FFFFFFFF, что одно и то же). Но бывают и случаи, когда True - это ровно 1 или ровно -1. На самом деле, в Delphi даже недостаточно логических типов. Это сообщение отредактировал(а) CodeMonkey - 8.4.2009, 18:26 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |