私は2つのCPUを持っています。 1つの32ビットと別の64ビット。我々は、次のようなC++コードの一部を持っている:C++ 32ビットおよび64ビットプロセッサのアラインメントの安全性
typedef std::bitset<16> MyBits;
typedef struct t_MyStruct_16 {
uint32_t first;
int16_t second;
__attribute__((__aligned__(8))) MyBits st;
} MyStruct_16;
typedef struct t_MyStruct_12 {
uint32_t first;
int16_t second;
MyBits st;
} MyStruct_12;
は、プロセッサ32と64ビットの両方のための構造体のサイズを計算するためにはsizeofを使用することが安全です?埋め込まれたものはどうすればいいですか?私が少し賢明な操作をすれば、コードの動作に影響を与えますか?
ありがとうございます。
安全とはどういう意味ですか?あなたを殺すつもりはない。 – stark
私が言っていることは、たとえば、もしこのビットセットからハッシュを計算すると、私は32ビットと64ビットに対して異なる結果を得ようとしているのでしょうか? – Yore
'sizeof'には、オブジェクトの型の配列を作成する場合に追加されるパディングが含まれます。 – stark