Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.053 c
15-1346704137
Rouse_
2012-09-04 00:28
2013.03.22
Ну собственно хвалюсь :)


2-1339168542
Виктор1985
2012-06-08 19:15
2013.03.22
Как скомпилировать DCU из PAS файла


2-1335502666
leklerk
2012-04-27 08:57
2013.03.22
Когда нужно использовать CoInitialize?


15-1339046808
tesseract
2012-06-07 09:26
2013.03.22
НА 92 году жизни скончался Рэй Бредбери.


15-1336336205
Юрий
2012-05-07 00:30
2013.03.22
С днем рождения ! 7 мая 2012 понедельник




   Наверх