#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, 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, 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+CiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgogCnR5cGVkZWYgc3RydWN0IEFfCnsKYm9vbCB0Owpsb25nIGxvbmcgczsKfSBBOwogCnR5cGVkZWYgc3RydWN0IEJfCnsKaW50IHQ7CmxvbmcgbG9uZyBzOwp9IEI7CiAKaW50IG1haW4odm9pZCkgewpBIHIxLCByMjsKbWVtc2V0KCZyMSwgMCwgc2l6ZW9mKEEpKTsKbWVtc2V0KCZyMiwgMCwgc2l6ZW9mKEEpKTsKIApyMS50ID0gZmFsc2U7CnIxLnMgPSAxMjMxMjMxMjM7CiAKcjIudCA9IHIxLnQ7CnIyLnMgPSByMS5zOwogCnNpemVfdCBBc2l6ZSA9IHNpemVvZihBKTsKc2l6ZV90IHBhZGRTaXplQSA9IG9mZnNldG9mKEEsIHMpIC0gc2l6ZW9mKHIxLnQpOwppbnQgQXJlc3VsdCA9IG1lbWNtcCgmcjEsICZyMiwgc2l6ZW9mKEEpKTsKIApCIGsxLCBrMjsKbWVtc2V0KCZrMSwgMCwgc2l6ZW9mKEIpKTsKbWVtc2V0KCZrMiwgMCwgc2l6ZW9mKEIpKTsKIAprMS50ID0gMDsKazEucyA9IDEyMzEyMzEyMzsKIAprMi50ID0gazEudDsKazIucyA9IGsxLnM7CiAKc2l6ZV90IEJzaXplID0gc2l6ZW9mKEIpOwpzaXplX3QgcGFkZFNpemVCID0gb2Zmc2V0b2YoQiwgcykgLSBzaXplb2YoazEudCk7CmludCBCcmVzdWx0ID0gbWVtY21wKCZrMSwgJmsyLCBzaXplb2YoQikpOwogCnByaW50ZigiQSBzdHJ1Y3Qgc2l6ZTogJWQgLS0gUGFkZGluZCBBIHN0cnVjdDogJWQgLS0gbWVtY21wIHJlczogJWRcbiIsIEFzaXplLCBwYWRkU2l6ZUEsIEFyZXN1bHQpOwpwcmludGYoIkIgc3RydWN0IHNpemU6ICVkIC0tIFBhZGRpbmQgQiBzdHJ1Y3Q6ICVkIC0tIG1lbWNtcCByZXM6ICVkXG4iLCBCc2l6ZSwgcGFkZFNpemVCLCBCcmVzdWx0KTsKcmV0dXJuIDA7Cn0=