Форум: "Начинающим";
Текущий архив: 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.1 c