We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
packtest.c
http://www.catb.org/esr/structure-packing/packtest.c
Copied here for posterity:
#include <stdio.h> #include <stdbool.h> struct foo1 { char *p; char c; long x; }; struct foo2 { char c; /* 1 byte */ char pad[7]; /* 7 bytes */ char *p; /* 8 bytes */ long x; /* 8 bytes */ }; struct foo3 { char *p; /* 8 bytes */ char c; /* 1 byte */ }; struct foo4 { short s; /* 2 bytes */ char c; /* 1 byte */ }; struct foo5 { char c; struct foo5_inner { char *p; short x; } inner; }; struct foo6 { short s; char c; int flip:1; int nybble:4; int septet:7; }; struct foo7 { int bigfield:31; int littlefield:1; }; struct foo8 { int bigfield1:31; int littlefield1:1; int bigfield2:31; int littlefield2:1; }; struct foo9 { int bigfield1:31; int bigfield2:31; int littlefield1:1; int littlefield2:1; }; struct foo10 { char c; struct foo10 *p; short x; }; struct foo11 { struct foo11 *p; short x; char c; }; struct foo12 { struct foo12_inner { char *p; short x; } inner; char c; }; main(int argc, char *argv) { printf("sizeof(char *) = %zu\n", sizeof(char *)); printf("sizeof(long) = %zu\n", sizeof(long)); printf("sizeof(int) = %zu\n", sizeof(int)); printf("sizeof(short) = %zu\n", sizeof(short)); printf("sizeof(char) = %zu\n", sizeof(char)); printf("sizeof(float) = %zu\n", sizeof(float)); printf("sizeof(double) = %zu\n", sizeof(double)); printf("sizeof(struct foo1) = %zu\n", sizeof(struct foo1)); printf("sizeof(struct foo2) = %zu\n", sizeof(struct foo2)); printf("sizeof(struct foo3) = %zu\n", sizeof(struct foo3)); printf("sizeof(struct foo4) = %zu\n", sizeof(struct foo4)); printf("sizeof(struct foo5) = %zu\n", sizeof(struct foo5)); printf("sizeof(struct foo6) = %zu\n", sizeof(struct foo6)); printf("sizeof(struct foo7) = %zu\n", sizeof(struct foo7)); printf("sizeof(struct foo8) = %zu\n", sizeof(struct foo8)); printf("sizeof(struct foo9) = %zu\n", sizeof(struct foo9)); printf("sizeof(struct foo10) = %zu\n", sizeof(struct foo10)); printf("sizeof(struct foo11) = %zu\n", sizeof(struct foo11)); printf("sizeof(struct foo12) = %zu\n", sizeof(struct foo12)); }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
http://www.catb.org/esr/structure-packing/packtest.c
Copied here for posterity:
The text was updated successfully, but these errors were encountered: