Вот в Delphi (FreePascal) есть такая директива absolute
var
a:array[1..10] of integer;
b:String absolute a;
....
В результате компилятор разместит переменные a и b по одному адресу. Это очень удобно для разных нетривиальных преобразований типов, когда они запрещены напрямую.
Другой способ: поля в записях record, вроде такого
type TMyRecord = record
case Boolean of //Вместо Boolean можно писать любой перечислимый тип, это не контролируется
1: (i: Int64);
2: (a1: byte; a2: byte; a3: byte; a4: byte; a5:byte; a6:byte; a7:byte; a8:byte);
end;
var
M:TMyRecord;
M.a2 = // Доступ к 2-му байту представления i.
Понятно, что можно завести указатели на переменные и присваивать им различные адреса, но это дополнительная операция, а вот как чтобы сразу компилятор размещал переменные в одном месте. Между прочим, в Borland Pascal, которые еще для MS-DOS, можно было в absolute даже адрес памяти указать, сейчас нельзя так как это было актуально только в реальном режиме.