ようするに、インラインアセンブラだと
 構造体メンバがバイトなのか16bitなのかとかが反映されないから嫌なんでしょ?

でもそれをインラインアセンブラで書こうというのが無理やりのように思う
あとで間違えないようにという事なら assert で サイズチェックを入れておいたら?