Strukturers storlek i DevC++
Postat: 17 september 2007, 14:26:05
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.
Här är ett exempel:
Utdata blir:
Finns det något sätt att få kompilatorn att spara strukturerna på "rätt sätt"?
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.
Här är ett exempel:
Kod: Markera allt
#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;
}
Utdata blir:
Kod: Markera allt
Size of ABC.a: 1
Size of ABC.b: 2
Size of ABC.c: 4
Size of ABC: 8
Size of DE: 8
Size of EF: 8
Tryck på en valfri tangent för att fortsätta...