C++コンパイラ(特にg ++)は構造体の内部要素を並べ替えることができますか?C++コンパイラは構造体の要素を並べ替えることができます
Struct SomeStruct{
...
...
long someLong;
long someLongArray[25];
unsigned long someUnsignedLong;
unsigned long someUnsignedLongArray[8];
unsigned long int someUnsignedLongInt;
...
...
};
は、私は、これはファイルへの出力、someUnsignedLongArrayとsomeLongArrayの順序を書くときに思える:
私は、次のようなものが含まれている構造を持っているいくつかの奇妙な行動を見ています(つまり、の要素someLongArray [] someUnsignedLongの後に表示され、の要素someUnsignedLongArray []の要素は、の後に表示されますeLong)。これは可能ですか?
おかげ
更新:
struct SomeStruct{
byte someByte;
byte someByteArray[6];
char someChar;
char someCharArray[5];
char someCharArrayArray[3][5];
short someShort;
signed short someShortArray[2];
unsigned short someUnsignedShort;
unsigned short someUnsignedShortArray[8];
int someInt;
int someIntArray[3];
int someIntArrayArrayArrayArray[4][3][2][6];
int *pSomeInt;
unsigned int someUnsignedInt;
unsigned int someUnsignedIntArray[9];
long someLong;
long someLongArray[25];
unsigned long someUnsignedLong;
unsigned long someUnsignedLongArray[8];
unsigned long int someUnsignedLongInt;
long long someLongLong;
long long someLongLongArray[5];
bool someBool;
bool someBoolArray[3];
unsigned long long someUnsignedLongLong;
unsigned long long someUnsignedLongLongArray[5];
unsigned long long someUnsignedLongLongArrayArray[5][2];
unsigned long long int *pSomeUnsignedLongLongInt;
};
(11.1) 指定されていないどのようにファイルに構造体を作成するのですか? – tstenner
あなたはあなたがあなたの考えを見ていることは確かですつまり、各要素に固有のビットパターンを書いてファイルにトレースすることができますか?#pragma pack(もしあれば)をstructの周りで使用していますか? –
おそらく、彼は構造体の要素の代わりに構造体のバイトをファイルに書き込んでいます。 – pyon