#include <stdio.h>
#include <stdbool.h>
#include <stddef.h>
#include <string.h>
typedef struct A_
{
bool t;
long long s;
} A;
typedef struct B_
{
int t;
long long s;
} B;
int main(void) {
A r1;
A r2;
r1.t = false;
r1.s = 123123123;
r2.t = r1.t;
r2.s = r1.s;
size_t Asize = sizeof(A);
size_t paddSizeA
= offsetof(A
, s
) - sizeof(r1.
t); int Aresult
= memcmp(&r1
, &r2
, sizeof(A
));
B k1;
B k2;
k1.t = 0;
k1.s = 123123123;
k2.t = k1.t;
k2.s = k1.s;
size_t Bsize = sizeof(B);
size_t paddSizeB
= offsetof(B
, s
) - sizeof(k1.
t); int Bresult
= memcmp(&k1
, &k2
, sizeof(B
));
printf("A struct size: %d -- Paddind A struct: %d -- memcmp res: %d\n", Asize
, paddSizeA
, Aresult
); printf("B struct size: %d -- Paddind B struct: %d -- memcmp res: %d\n", Bsize
, paddSizeB
, Bresult
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdHlwZWRlZiBzdHJ1Y3QgQV8KewogICAgYm9vbCB0OwogICAgbG9uZyBsb25nIHM7Cn0gQTsKCnR5cGVkZWYgc3RydWN0IEJfCnsKICAgIGludCB0OwogICAgbG9uZyBsb25nIHM7IAp9IEI7CgppbnQgbWFpbih2b2lkKSB7CiAgICBBIHIxOwogICAgQSByMjsKICAgIAogICAgcjEudCA9IGZhbHNlOwogICAgcjEucyA9IDEyMzEyMzEyMzsKCiAgICByMi50ID0gcjEudDsKICAgIHIyLnMgPSByMS5zOwogICAgCiAgICBzaXplX3QgQXNpemUgPSBzaXplb2YoQSk7CiAgICBzaXplX3QgcGFkZFNpemVBID0gb2Zmc2V0b2YoQSwgcykgLSBzaXplb2YocjEudCk7CiAgICBpbnQgQXJlc3VsdCA9IG1lbWNtcCgmcjEsICZyMiwgc2l6ZW9mKEEpKTsKICAgIAogICAgQiBrMTsKICAgIEIgazI7CiAgICAKICAgIGsxLnQgPSAwOwogICAgazEucyA9IDEyMzEyMzEyMzsKCiAgICBrMi50ID0gazEudDsKICAgIGsyLnMgPSBrMS5zOwogICAgCiAgICBzaXplX3QgQnNpemUgPSBzaXplb2YoQik7CiAgICBzaXplX3QgcGFkZFNpemVCID0gb2Zmc2V0b2YoQiwgcykgLSBzaXplb2YoazEudCk7CiAgICBpbnQgQnJlc3VsdCA9IG1lbWNtcCgmazEsICZrMiwgc2l6ZW9mKEIpKTsKICAgIAogICAgcHJpbnRmKCJBIHN0cnVjdCBzaXplOiAlZCAtLSBQYWRkaW5kIEEgc3RydWN0OiAlZCAtLSBtZW1jbXAgcmVzOiAlZFxuIiwgQXNpemUsIHBhZGRTaXplQSwgQXJlc3VsdCk7CiAgICBwcmludGYoIkIgc3RydWN0IHNpemU6ICVkIC0tIFBhZGRpbmQgQiBzdHJ1Y3Q6ICVkIC0tIG1lbWNtcCByZXM6ICVkXG4iLCBCc2l6ZSwgcGFkZFNpemVCLCBCcmVzdWx0KTsKCXJldHVybiAwOwp9Cg==