Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

приводить к типу 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.052 c
8-1230998221
Б
2009-01-03 18:57
2013.03.22
Где можно скачать эту книгу???


15-1331641742
Kerk
2012-03-13 16:29
2013.03.22
Про профессию


15-1352233802
Юрий
2012-11-07 00:30
2013.03.22
С днем рождения ! 7 ноября 2012 среда


3-1285224678
Раиса
2010-09-23 10:51
2013.03.22
MS SQL 2000 и MySQL - результат разный?


9-1194294204
Mr.Vlad
2007-11-05 23:23
2013.03.22
Сенсор