#include <iostream>
using namespace std;
struct s1
{
int i;
float f;
char c;
};
struct s2
{
short s;
float f;
char c;
};
struct s3
{
int i;
double d;
char c;
};
int main()
{
cout << "s1::i: " << offsetof(s1, i) << endl;
cout << "s1::f: " << offsetof(s1, f) << endl;
cout << "s1::c: " << offsetof(s1, c) << endl << endl;
cout << "s2::s: " << offsetof(s2, s) << endl;
cout << "s2::f: " << offsetof(s2, f) << endl;
cout << "s2::c: " << offsetof(s2, c) << endl << endl;
cout << "s3::i: " << offsetof(s3, i) << endl;
cout << "s3::d: " << offsetof(s3, d) << endl;
cout << "s3::c: " << offsetof(s3, c) << endl << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBzMQp7CiAgaW50IGk7CiAgZmxvYXQgZjsKICBjaGFyIGM7Cn07CgpzdHJ1Y3QgczIKewogIHNob3J0IHM7CiAgZmxvYXQgZjsKICBjaGFyIGM7Cn07CgpzdHJ1Y3QgczMKewogIGludCBpOwogIGRvdWJsZSBkOwogIGNoYXIgYzsKfTsKCmludCBtYWluKCkKewogIGNvdXQgPDwgInMxOjppOiAiIDw8IG9mZnNldG9mKHMxLCBpKSA8PCBlbmRsOwogIGNvdXQgPDwgInMxOjpmOiAiIDw8IG9mZnNldG9mKHMxLCBmKSA8PCBlbmRsOwogIGNvdXQgPDwgInMxOjpjOiAiIDw8IG9mZnNldG9mKHMxLCBjKSA8PCBlbmRsIDw8IGVuZGw7CgogIGNvdXQgPDwgInMyOjpzOiAiIDw8IG9mZnNldG9mKHMyLCBzKSA8PCBlbmRsOwogIGNvdXQgPDwgInMyOjpmOiAiIDw8IG9mZnNldG9mKHMyLCBmKSA8PCBlbmRsOwogIGNvdXQgPDwgInMyOjpjOiAiIDw8IG9mZnNldG9mKHMyLCBjKSA8PCBlbmRsIDw8IGVuZGw7CgogIGNvdXQgPDwgInMzOjppOiAiIDw8IG9mZnNldG9mKHMzLCBpKSA8PCBlbmRsOwogIGNvdXQgPDwgInMzOjpkOiAiIDw8IG9mZnNldG9mKHMzLCBkKSA8PCBlbmRsOwogIGNvdXQgPDwgInMzOjpjOiAiIDw8IG9mZnNldG9mKHMzLCBjKSA8PCBlbmRsIDw8IGVuZGw7CgogIHJldHVybiAwOwp9