Иногда требуется определить, какой порядок байтов используется в текущей архитектуре, и специально для такого случая у нас есть скромный рецепт, быстро переведенный с языка программирования C.
Для того, чтобы определить порядок байтов можно воспользоваться следующим кодом:
import std.stdio; void main() { ushort x = 1; writeln( *(cast(ubyte*) &x) == 0 ? "big-endian" : "little-endian" ); }
Данный код выводит именование порядка байтов в строковом виде и работает за счет стандартных операций приведения типа и взятия адреса: в частности, использование указателей позволяет обратиться к первому байту из изначального значения ushort
(первому в порядке хранения в памяти), а приведение типа помогает сделать сравнение с 0 более доступным.
P.S: Возможно, объяснение слишком корявое, потому рекомендую обратиться сюда за более подробной информацией.