Вот продолжаем с ромкой по 2-3 байтных выяснять.
К примеру код на Delphi сравнения сигнатуры:
Код:
PHeader = ^THeader;
THeader = packed record
sign: dword;
ver: dword;
...
end;
const
SIGN_PKT = $00544B50;
var
buf: THeader;
begin
fread(f, buf, len);
if (buf.sign = SIGN_PKT) then
...
если делать 2-3-х байтными это уже выливается в сравнения массивов или всякие присвоения с масками и сдвигами. По-моему лучше и правда забить 32-х битными чем потом годами мучаться или разнобой получать.