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

Вниз

приводить к типу DWORD   Найти похожие ветки 

 
Scott Storch ©   (2012-03-06 15:06) [0]

В каких случая значения констант нужно приводить к типу DWORD?

Вот, например, из windows.pas:


 MINLONG = DWORD($80000000);
 {$EXTERNALSYM MINLONG}
 MAXLONG = $7FFFFFFF;
 {$EXTERNALSYM MAXLONG}

STATUS_PENDING                  = $00000103;
 {$EXTERNALSYM STATUS_PENDING}
 STATUS_SEGMENT_NOTIFICATION     = $40000005;
 {$EXTERNALSYM STATUS_SEGMENT_NOTIFICATION}
 STATUS_GUARD_PAGE_VIOLATION     = DWORD($80000001);
 {$EXTERNALSYM STATUS_GUARD_PAGE_VIOLATION}
 STATUS_DATATYPE_MISALIGNMENT    = DWORD($80000002);
 {$EXTERNALSYM STATUS_DATATYPE_MISALIGNMENT}
 STATUS_BREAKPOINT               = DWORD($80000003);
 {$EXTERNALSYM STATUS_BREAKPOINT}


 
RWolf ©   (2012-03-06 15:13) [1]

если не указать тип константы, выбирается ближайший целый знаковый тип, в котором может уместиться это число.
если написать a = $80000001, компилятор посчитает, что a имеет тип Int64.
вот поэтому и приводят.


 
icWasya ©   (2012-03-06 15:14) [2]

Вот когда единичка в 31-ом разряде($80000001), тогда и нужно.


 
RWolf ©   (2012-03-06 15:15) [3]

хотя вру, к беззнаковому типу тоже может привести.
короче: см. хелп, топик "true constants".


 
Scott Storch ©   (2012-03-06 15:15) [4]

все ясно, спасибо.


 
Ega23 ©   (2012-03-06 15:16) [5]

const
 cMyConst = 1;
 cMyDWordConst = DWORD(1);
begin
 ShowMessage(VarTypeAsText(VarType(cMyConst)));
 ShowMessage(VarTypeAsText(VarType(cMyDWordConst)));
end;


Например.


 
Anatoly Podgoretsky ©   (2012-03-06 15:39) [6]

Не обязательно ни в каких случаях, на dWord свет клином не сошелся, но удобно, особенно если нужен фундаментальный тип



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

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

Наверх





Память: 0.45 MB
Время: 0.059 c
15-1347721207
Artem
2012-09-15 19:00
2013.03.22
Посоветуйте простой инсталлятор creator?


15-1342873269
wl
2012-07-21 16:21
2013.03.22
подключение внешнего монитора к ноутбуку


2-1328618080
JohnKorsh
2012-02-07 16:34
2013.03.22
Работа с MediaPlayer.


15-1347612790
LDV
2012-09-14 12:53
2013.03.22
Управление флагами в InnoSetup


4-1259049838
Evger
2009-11-24 11:03
2013.03.22
Как определить модальное окно





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский