#include <stdio.h>
// from header 1
#pragma pack(push)
#pragma pack(1)
struct my_internal_buisiless {
int cool_story;
char magic;
int another_cool_story;
};
#pragma pack(pop)
// from header 2
#pragma pack(push)
#pragma pack(2)
struct not_your_buisiness {
char magic[2];
float flop;
};
#pragma pack(pop)
// from header 3
struct widget {
int blahblah;
struct my_internal_buisiless business[4];
struct not_your_buisiness nope[4];
};
struct struct1 {
int element0;
struct {
int element0;
char element1;
int element2;
} element1[4];
struct {
char element0[2];
float element1;
} element2[4];
};
void my_migthy_call(struct widget *data_for_result)
{
data_for_result->nope[3].flop = 100.99;
}
int main(int argc, char* argv[])
{
struct widget my_test;
struct struct1 shit_test;
my_migthy_call(&my_test);
my_migthy_call(&shit_test);
printf("My result: %f\n", my_test.
nope[3].
flop); printf("Shit result result: %f\n", shit_test.
element2[3].
element1); }
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBmcm9tIGhlYWRlciAxCiNwcmFnbWEgcGFjayhwdXNoKQojcHJhZ21hIHBhY2soMSkKc3RydWN0IG15X2ludGVybmFsX2J1aXNpbGVzcyB7CglpbnQgY29vbF9zdG9yeTsKCWNoYXIgbWFnaWM7CglpbnQgYW5vdGhlcl9jb29sX3N0b3J5Owp9OwojcHJhZ21hIHBhY2socG9wKQoKLy8gZnJvbSBoZWFkZXIgMgojcHJhZ21hIHBhY2socHVzaCkKI3ByYWdtYSBwYWNrKDIpCnN0cnVjdCBub3RfeW91cl9idWlzaW5lc3MgewoJY2hhciBtYWdpY1syXTsKCWZsb2F0IGZsb3A7Cn07CiNwcmFnbWEgcGFjayhwb3ApCgovLyBmcm9tIGhlYWRlciAzCnN0cnVjdCB3aWRnZXQgewoJaW50IGJsYWhibGFoOwoJc3RydWN0IG15X2ludGVybmFsX2J1aXNpbGVzcyBidXNpbmVzc1s0XTsKCXN0cnVjdCBub3RfeW91cl9idWlzaW5lc3Mgbm9wZVs0XTsKfTsKCgpzdHJ1Y3Qgc3RydWN0MSB7CglpbnQgZWxlbWVudDA7CglzdHJ1Y3QgewoJCWludCBlbGVtZW50MDsKCQljaGFyIGVsZW1lbnQxOwoJCWludCBlbGVtZW50MjsKCX0gZWxlbWVudDFbNF07CglzdHJ1Y3QgewoJCWNoYXIgZWxlbWVudDBbMl07CgkJZmxvYXQgZWxlbWVudDE7Cgl9IGVsZW1lbnQyWzRdOwp9OwoKdm9pZCBteV9taWd0aHlfY2FsbChzdHJ1Y3Qgd2lkZ2V0ICpkYXRhX2Zvcl9yZXN1bHQpCnsKCWRhdGFfZm9yX3Jlc3VsdC0+bm9wZVszXS5mbG9wID0gMTAwLjk5Owp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CglzdHJ1Y3Qgd2lkZ2V0IG15X3Rlc3Q7CglzdHJ1Y3Qgc3RydWN0MSBzaGl0X3Rlc3Q7CglteV9taWd0aHlfY2FsbCgmbXlfdGVzdCk7CglteV9taWd0aHlfY2FsbCgmc2hpdF90ZXN0KTsKCXByaW50ZigiTXkgcmVzdWx0OiAlZlxuIiwgbXlfdGVzdC5ub3BlWzNdLmZsb3ApOwoJcHJpbnRmKCJTaGl0IHJlc3VsdCByZXN1bHQ6ICVmXG4iLCBzaGl0X3Rlc3QuZWxlbWVudDJbM10uZWxlbWVudDEpOwp9