構造体に格納する必要がある2つの(符号なしの短い)16ビット値があるとします。単一の32ビット整数または2つの符号なしshort変数としてそれらを一緒に格納する必要がありますか?コード生成の点でクロスプラットフォーム(x86の、ARM 32ビット/ 64ビット)符号の全体良いだろう効率的なクロスプラットフォームコードのために構造体のメンバーをパックする方法は?
struct Foo {
unsigned CombinedValue; // A
unsigned short Index; //B
unsigned short Counter; //B
};
?私が2つの32ビットintを格納していた場合、答えは同じでしょうか?
一般的なアドバイスは、彼らが異なるサイズをしている場合は特に試してみて、効率的なパッキングのためのあなたのメンバーを並べ替えることがあることを考えると、同じサイズのメンバーのための一般的なアドバイスは何ですか。 – crezefire
'unsigned 'が32ビットであることをどのように知っていますか? –
保持する必要のあるデータに適したタイプを使用します。私は 'int'をデフォルトとしています。これらの種類のマイクロ最適化は、コードが機能し、それが問題であると判断するまでプロファイリングするまで、実際には避けるべきです。 – NathanOliver