|
メンバ変数の並びを考慮すべし |
|||
|
クラス(や構造体)のメンバ変数の並びによって、クラスのメモリサイズが節約出来る場合があります。 |
|||
|
List1 |
|||
class CClass{
public:
char m_nCharA;
int m_nIntA;
char m_nCharB;
int m_nIntB;
};
|
|||
|
クラス CClass のメモリサイズは、16バイトです。 |
|||
|
List2 |
|||
class CClass{
public:
int m_nIntA;
int m_nIntB;
char m_nCharA;
char m_nCharB;
};
|
|||
|
こうすることでクラス CClass のメモリサイズは、12バイトになりました。 |
|||
|
List3 |
|||
#pragma pack( push )
#pragma pack( 1 )
class CClass{
public:
int m_nIntA;
int m_nIntB;
char m_nCharA;
char m_nCharB;
};
#pragma pack( pop )
|
|||
|
これで 10バイトに収まりました。 |
|||
|
|||
|
|
前のページ "経過時間"の判断方法の穴に落ちるべからず |
コンテンツのトップ |
次のページ 最適化オプション"エイリアスを使わないと仮定する"の意味を熟考すべし |




