#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 = r1;
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 = k1;
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+CiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgogCnR5cGVkZWYgc3RydWN0IEFfCnsKYm9vbCB0Owpsb25nIGxvbmcgczsKfSBBOwogCnR5cGVkZWYgc3RydWN0IEJfCnsKaW50IHQ7CmxvbmcgbG9uZyBzOwp9IEI7CiAKaW50IG1haW4odm9pZCkgewpBIHIxOwpBIHIyOwogCnIxLnQgPSBmYWxzZTsKcjEucyA9IDEyMzEyMzEyMzsKIApyMiAgPSByMTsKIApzaXplX3QgQXNpemUgPSBzaXplb2YoQSk7CnNpemVfdCBwYWRkU2l6ZUEgPSBvZmZzZXRvZihBLCBzKSAtIHNpemVvZihyMS50KTsKaW50IEFyZXN1bHQgPSBtZW1jbXAoJnIxLCAmcjIsIHNpemVvZihBKSk7CiAKQiBrMTsKQiBrMjsKIAprMS50ID0gMDsKazEucyA9IDEyMzEyMzEyMzsKIAprMiA9IGsxOwogCnNpemVfdCBCc2l6ZSA9IHNpemVvZihCKTsKc2l6ZV90IHBhZGRTaXplQiA9IG9mZnNldG9mKEIsIHMpIC0gc2l6ZW9mKGsxLnQpOwppbnQgQnJlc3VsdCA9IG1lbWNtcCgmazEsICZrMiwgc2l6ZW9mKEIpKTsKIApwcmludGYoIkEgc3RydWN0IHNpemU6ICVkIC0tIFBhZGRpbmQgQSBzdHJ1Y3Q6ICVkIC0tIG1lbWNtcCByZXM6ICVkXG4iLCBBc2l6ZSwgcGFkZFNpemVBLCBBcmVzdWx0KTsKcHJpbnRmKCJCIHN0cnVjdCBzaXplOiAlZCAtLSBQYWRkaW5kIEIgc3RydWN0OiAlZCAtLSBtZW1jbXAgcmVzOiAlZFxuIiwgQnNpemUsIHBhZGRTaXplQiwgQnJlc3VsdCk7CnJldHVybiAwOwp9