Använder DevC++ och har upptäckt att strukturers storlek blir avrundade till närmaste multipel av 4 bytes. Antar att kompilatorn är 32-bitars och att det är därför.
Det har inneburit problem för mig när jag skriver hela strukturer till filer. Krävs en del fulkod för att strukturen ska skrivas på rätt sätt till filen. Även när filen ska läsas.
#include <cstdlib>
#include <iostream>
using namespace std;
struct
{
char a;
short b;
long c;
} ABC;
struct
{
char d;
long e;
} DE;
struct
{
long e;
long f;
} EF;
int main(int argc, char *argv[])
{
cout<<"Size of ABC.a: "<<sizeof(ABC.a)<<endl;
cout<<"Size of ABC.b: "<<sizeof(ABC.b)<<endl;
cout<<"Size of ABC.c: "<<sizeof(ABC.c)<<endl;
cout<<"Size of ABC: "<<sizeof(ABC)<<endl;
cout<<"Size of DE: "<<sizeof(DE)<<endl;
cout<<"Size of EF: "<<sizeof(EF)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Borde skrivas in i lektion 1 i programeringsboken, så många som gått rakt ner i den gropen.
Struktar är fina när man försöker hålla styr på sin data internt i sin applikation, men de ställer då till mycket strul när man försöker kommunicera med något utanför sin egna lilla värld...