Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // gcc, 64bit, -std=c99 -Wall -Wextra -Wpedantic -Wshadow
- #include <stdio.h>
- #include <stdlib.h>
- struct s1 {
- int a;
- int b;
- int c;
- int *p;
- };
- typedef struct s2 {
- int a;
- int b;
- int c;
- int *p;
- } S2;
- typedef struct s3 {
- int a;
- int b __attribute__ ((packed));
- int c __attribute__ ((packed));
- int *p __attribute__ ((packed));
- } S3;
- typedef struct s4 {
- int a;
- int b __attribute__ ((aligned (16)));
- int c __attribute__ ((aligned (16)));
- int *p __attribute__ ((aligned (16)));
- } S4;
- struct s1 strc_1;
- struct s1 strc_1a[10];
- S2 strc_2;
- S2 strc_2a[10];
- S3 strc_3;
- S3 strc_3a[10];
- S4 strc_4;
- S4 strc_4a[10];
- int main() {
- printf("sizeof struct s1: %zu\n", sizeof (struct s1));
- printf("sizeof strc_1: %zu\n", sizeof strc_1);
- printf("sizeof strc_1a: %zu\n", sizeof strc_1a);
- printf("sizeof *strc_1a: %zu\n", sizeof *strc_1a);
- printf("sizeof strc_1a[0]: %zu\n\n", sizeof strc_1a[0]);
- printf("sizeof (S2): %zu\n", sizeof (S2));
- printf("sizeof strc_2: %zu\n", sizeof strc_2);
- printf("sizeof strc_2a: %zu\n", sizeof strc_2a);
- printf("sizeof *strc_2a: %zu\n", sizeof *strc_2a);
- printf("sizeof strc_2a[0]: %zu\n\n", sizeof strc_2a[0]);
- printf("sizeof (S3): %zu\n", sizeof (S3));
- printf("sizeof strc_3: %zu\n", sizeof strc_3);
- printf("sizeof strc_3a: %zu\n", sizeof strc_3a);
- printf("sizeof *strc_3a: %zu\n", sizeof *strc_3a);
- printf("sizeof strc_3a[0]: %zu\n\n", sizeof strc_3a[0]);
- printf("sizeof (S4): %zu\n", sizeof (S4));
- printf("sizeof strc_4: %zu\n", sizeof strc_4);
- printf("sizeof strc_4a: %zu\n", sizeof strc_4a);
- printf("sizeof *strc_4a: %zu\n", sizeof *strc_4a);
- printf("sizeof strc_4a[0]: %zu\n\n", sizeof strc_4a[0]);
- return 0;
- }
- /*
- output:
- sizeof struct s1: 24
- sizeof strc_1: 24
- sizeof strc_1a: 240
- sizeof *strc_1a: 24
- sizeof strc_1a[0]: 24
- sizeof (S2): 24
- sizeof strc_2: 24
- sizeof strc_2a: 240
- sizeof *strc_2a: 24
- sizeof strc_2a[0]: 24
- sizeof (S3): 20
- sizeof strc_3: 20
- sizeof strc_3a: 200
- sizeof *strc_3a: 20
- sizeof strc_3a[0]: 20
- sizeof (S4): 64
- sizeof strc_4: 64
- sizeof strc_4a: 640
- sizeof *strc_4a: 64
- sizeof strc_4a[0]: 64
- */
Advertisement
Add Comment
Please, Sign In to add comment