#include <stdio.h>
struct demo {
char c;
int i;
} test;
int main()
{
test.c = 'X';
test.i = 8;
printf("struct demo sizeof : %d\n", sizeof(struct demo));
printf("struct test sizeof : %d\n", sizeof(test));
return 0;
}
beyes@linux-beyes:~/C/base> ./sizeof.exe
struct demo sizeof : 8
struct test sizeof : 8
$1 = (struct demo *) 0x804a01c
(gdb) x/16b 0x804a01c
0x804a01c <test>: 0x58 0x00 0x00 0x00 0x08 0x00 0x00 0x00
#include <stdio.h>
#include <stddef.h>
struct demo {
char c;
int i;
char name[20];
} test;
int main()
{
test.c = 'X';
test.i = 8;
printf("struct demo sizeof : %d\n", sizeof(struct demo));
printf("struct test sizeof : %d\n", sizeof(test));
printf("test.name offset is : %d\n", offsetof(struct demo, name));
return 0;
}
beyes@linux-beyes:~/C/base> ./sizeof.exe
struct demo sizeof : 28
struct test sizeof : 28
test.name offset is : 8
#include <stdio.h>
#include <stddef.h>
struct demo {
char c;
int i;
char name[20];
} test;
struct student {
char name[10];
int date;
//struct demo test;
double k;
};
int main()
{
test.c = 'X';
test.i = 8;
printf("struct demo sizeof : %d\n", sizeof(struct demo));
printf("struct test sizeof : %d\n", sizeof(test));
printf("test.i offset is : %d\n", offsetof(struct demo, name));
printf("---------------------------------------------------\n");
printf("struct student sizeof is : %d\n", sizeof(struct student));
printf("student.k offsetof is : %d\n", offsetof(struct student, k));
return 0;
}
beyes@linux-beyes:~/C/base> ./sizeof.exe
struct demo sizeof : 28
struct test sizeof : 28
test.i offset is : 8
---------------------------------------------------
struct student sizeof is : 24
student.k offsetof is : 16
#include <stdio.h>
#include <stddef.h>
struct max {
char c;
short x;
char u;
};
int main()
{
printf("struct max sizeof is : %d\n", sizeof(struct max));
return 0;
}
struct max sizeof is : 6 |
#include <stdio.h>
#include <stddef.h>
struct demo {
char c;
int i;
char name[20];
double m;
} test;
struct student {
char name[10];
int date;
struct demo test;
double k;
};
int main()
{
test.c = 'X';
test.i = 8;
printf("struct demo sizeof : %d\n", sizeof(struct demo));
printf("struct test sizeof : %d\n", sizeof(test));
printf("test.i offset is : %d\n", offsetof(struct demo, name));
printf("---------------------------------------------------\n");
printf("struct student sizeof is : %d\n", sizeof(struct student));
printf("student.k offsetof is : %d\n", offsetof(struct student, k));
return 0;
}
beyes@linux-beyes:~/C/base> ./sizeof.exe
struct demo sizeof : 36
struct test sizeof : 36
test.i offset is : 8
---------------------------------------------------
struct student sizeof is : 60
student.k offsetof is : 52
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |