#include <iostream>
struct abcde
{
uint16_t a;
uint8_t b;
uint16_t c;
uint8_t d;
uint16_t e;
};
struct abcde_packed
{
uint16_t a;
uint8_t b;
uint16_t c;
uint8_t d;
uint16_t e;
} __attribute__((packed));
int main() {
abcde x;
std::cout << sizeof(x) << "\n" << sizeof(x.a) + sizeof(x.b) + sizeof(x.c) + sizeof(x.d) + sizeof(x.e) << "\n\n";
abcde_packed y;
std::cout << sizeof(y) << "\n" << sizeof(y.a) + sizeof(y.b) + sizeof(y.c) + sizeof(y.d) + sizeof(y.e) << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IGFiY2RlCnsKCXVpbnQxNl90IGE7Cgl1aW50OF90IGI7Cgl1aW50MTZfdCBjOwoJdWludDhfdCBkOwoJdWludDE2X3QgZTsKfTsKCgpzdHJ1Y3QgYWJjZGVfcGFja2VkCnsKCXVpbnQxNl90IGE7Cgl1aW50OF90IGI7Cgl1aW50MTZfdCBjOwoJdWludDhfdCBkOwoJdWludDE2X3QgZTsKfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKCgoKaW50IG1haW4oKSB7CglhYmNkZSB4OwoJc3RkOjpjb3V0IDw8IHNpemVvZih4KSA8PCAiXG4iIDw8IHNpemVvZih4LmEpICsgc2l6ZW9mKHguYikgKyBzaXplb2YoeC5jKSArIHNpemVvZih4LmQpICsgc2l6ZW9mKHguZSkgPDwgIlxuXG4iOwoJCglhYmNkZV9wYWNrZWQgeTsKCXN0ZDo6Y291dCA8PCBzaXplb2YoeSkgPDwgIlxuIiA8PCBzaXplb2YoeS5hKSArIHNpemVvZih5LmIpICsgc2l6ZW9mKHkuYykgKyBzaXplb2YoeS5kKSArIHNpemVvZih5LmUpIDw8ICJcbiI7CgoJcmV0dXJuIDA7Cn0=