Skip to content

Instantly share code, notes, and snippets.

@Ruzzz
Created December 18, 2016 03:11
Show Gist options
  • Save Ruzzz/92ade3fcff1823388f467ec2d116e6f5 to your computer and use it in GitHub Desktop.
Save Ruzzz/92ade3fcff1823388f467ec2d116e6f5 to your computer and use it in GitHub Desktop.
type
MemAlign<T> = record
private
First: Byte;
Second: T;
public
class function Get(): Cardinal; static; inline;
end;
const
MEM_ALIGN_INT64 = SizeOf(MemAlign<Int64>) - SizeOf(Int64);
MEM_ALIGN_INT32 = SizeOf(MemAlign<Cardinal>) - SizeOf(Cardinal);
MEM_ALIGN_INT16 = SizeOf(MemAlign<Word>) - SizeOf(Word);
MEM_ALIGN_INT8 = SizeOf(MemAlign<Byte>) - SizeOf(Byte);
begin
Writeln(MEM_ALIGN_INT64);
Writeln(MEM_ALIGN_INT32);
Writeln(MEM_ALIGN_INT16);
Writeln(MEM_ALIGN_INT8);
Writeln;
Writeln(MemAlign<Int64>.Get);
Writeln(MemAlign<Integer>.Get);
Writeln(MemAlign<Word>.Get);
Readln;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment