Skip to content

Instantly share code, notes, and snippets.

@matklad
Last active October 28, 2017 13:19
Show Gist options
  • Save matklad/9471c7dc2388822e373d9371f728817e to your computer and use it in GitHub Desktop.
Save matklad/9471c7dc2388822e373d9371f728817e to your computer and use it in GitHub Desktop.
#include <cstdio>
class A {
double X;
int Y;
};
class B {
A base;
int Z;
};
class C: A {
int Z;
};
int main() {
printf("sizeof(A) = %lu, alignof(A) = %lu\n", sizeof(A), alignof(A));
printf("sizeof(B) = %lu, alignof(B) = %lu\n", sizeof(B), alignof(B));
printf("sizeof(C) = %lu, alignof(C) = %lu\n", sizeof(C), alignof(C));
return 0;
}
/*
sizeof(A) = 16, alignof(A) = 8
sizeof(B) = 24, alignof(B) = 8
sizeof(C) = 16, alignof(C) = 8
*/
#include <cstdio>
class A {
public:
double X;
int Y;
};
class B {
A base;
int Z;
};
class C: A {
int Z;
};
int main() {
printf("sizeof(A) = %lu, alignof(A) = %lu\n", sizeof(A), alignof(A));
printf("sizeof(B) = %lu, alignof(B) = %lu\n", sizeof(B), alignof(B));
printf("sizeof(C) = %lu, alignof(C) = %lu\n", sizeof(C), alignof(C));
return 0;
}
/*
sizeof(A) = 16, alignof(A) = 8
sizeof(B) = 24, alignof(B) = 8
sizeof(C) = 24, alignof(C) = 8
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment