Справочник функций и процедур Delphi: SizeOf

  Навигация по первой букве:

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

SizeOf
Функция
Возвращает занимаемый размер типа или переменной в байтах System unit
  
1 function SizeOf ( Variable : Any type ) : Integer;

2 function SizeOf ( Type ) : Integer;

Delphi Sources

Описание
Функция SizeOf возвращает занимаемый размер (в байтах) переменной (Variable) или типа (Type).

Часто бывает полезно узнать, сколько места занимают данные. Особенно при использовании стандартных процедур вроде GetMem.

Для некоторых типов всегда возвращается размер указателя, так как они и являются просто указателями на данные, хранимые эти типом. Примером таких типом являются строки.

Для получения размера объекта используйте метод InstanceSize.
Похожие команды
Length  Возвращает число элементов в массиве или строке

SetLength  Изменяет размер строки или размер динамического массива

 
Пример кода : Показ размер некоторых типов данных и переменных
var
  intNumber : Integer;
  extNumber : Extended;
  sentence  : string;

begin
  // Показ размеров численных типов данных
  ShowMessageFmt('  SizeOf(Integer) = %d',[SizeOf(Integer)]);
  ShowMessageFmt('SizeOf(intNumber) = %d',[SizeOf(intNumber)]);
  ShowMessageFmt(' SizeOf(Extended) = %d',[SizeOf(Extended)]);
  ShowMessageFmt('SizeOf(extNumber) = %d',[SizeOf(extNumber)]);

  // Строковые типы и переменные - указатели на фактические строки
  sentence := 'A long sentence, certainly longer than 4';
  ShowMessageFmt('   SizeOf(string) = %d',[SizeOf(string)]);
  ShowMessageFmt(' SizeOf(sentence) = %d',[SizeOf(sentence)]);
end;
SizeOf(Integer) = 4
SizeOf(intNumber) = 4
SizeOf(Extended) = 10
SizeOf(extNumber) = 10
SizeOf(string) = 4
SizeOf(sentence) = 4
 
Пример кода : Использование GetMem, чтобы распределить память для десяти записей
type
  TRecord = Record
    name : string[10];
    age  : Byte;
  end;

var
  recStorage : PChar;

begin
  // Показ размера нашего типа записи
  ShowMessageFmt(' SizeOf(TRecord) = %d',[SizeOf(TRecord)]);

  // Распределение памяти для этих 10 записей
  GetMem(recStorage, 10 * SizeOf(TRecord));
end;
SizeOf(TRecord) = 12
 


Последние добавленные на сайт исходники

TDictionary Custom Sort

Fast Watermark Sources

3D Designer

Sik Screen Capture

Patch Maker

Айболит (remote control)

 

ListBox Drag & Drop

Доска для игры Реверси

Графические эффекты

Рисование по маске

Перетаскивание изображений

Canvas Drawing

 

Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software (источник – "DelphiBasics")

Группа ВКонтакте