Просто если ты итерпретируешь байтовый блок как структуру, у тебя куча неопределенностей - порядок байтов, размер интов, нестабильность АПИ и так далее. Если ты все это заворачиваешь в интерпретацию явно, то ты от этого защищаешься
Выглядит одинаково, что структура, что реализованное то же самое в либе. Просто вот эти особенности надо учитывать. Не знаю, как там в C (один ABI на платформу?), но в языках, которые с ним интеропятся, вроде обычно раскидывают аннотации с описанием таких параметров.