#include <stdio.h>
struct str_0
{
char c_1;
char c_2;
char c_3;
char c_4;
int i_1;
};
struct str_1
{
char c_1;
char c_2;
char c_3;
int i_1;
};
struct str_2
{
char c_1;
char c_2;
int i_1;
};
struct str_3
{
char c_1;
int i_1;
};
int main(void)
{
struct str_0 str0;
struct str_1 str1;
struct str_2 str2;
struct str_3 str3;
(char *)&str0.c_2 - (char *)&str0.c_1,
(char *)&str0.c_3 - (char *)&str0.c_2,
(char *)&str0.c_4 - (char *)&str0.c_3,
(char *)&str0.i_1 - (char *)&str0.c_4 );
printf("%li %li %li\n", (char *)&str1.
c_2 - (char *)&str1.
c_1, (char *)&str1.c_3 - (char *)&str1.c_2,
(char *)&str1.i_1 - (char *)&str1.c_3 );
printf("%li %li\n", (char *)&str2.
c_2 - (char *)&str2.
c_1, (char *)&str2.i_1 - (char *)&str2.c_2 );
printf("%li\n", (char *)&str3.
i_1 - (char *)&str3.
c_1);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+IAoKCnN0cnVjdCBzdHJfMAp7CiAgY2hhciAgICBjXzE7CiAgY2hhciAgICBjXzI7CiAgY2hhciAgICBjXzM7CiAgY2hhciAgICBjXzQ7CiAgaW50ICAgICBpXzE7Cn07CgpzdHJ1Y3Qgc3RyXzEKewogIGNoYXIgICAgY18xOwogIGNoYXIgICAgY18yOwogIGNoYXIgICAgY18zOwogIGludCAgICAgaV8xOwp9OwoKc3RydWN0IHN0cl8yIAp7CiAgY2hhciAgICBjXzE7CiAgY2hhciAgICBjXzI7CiAgaW50ICAgICBpXzE7Cn07CgpzdHJ1Y3Qgc3RyXzMgCnsKICBjaGFyICAgIGNfMTsKICBpbnQgICAgIGlfMTsKfTsKCmludCBtYWluKHZvaWQpIAp7IAogIHN0cnVjdCBzdHJfMCBzdHIwOwogIHN0cnVjdCBzdHJfMSBzdHIxOwogIHN0cnVjdCBzdHJfMiBzdHIyOwogIHN0cnVjdCBzdHJfMyBzdHIzOwogIAogIHByaW50ZigiJWxpICVsaSAlbGkgJWxpXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopJnN0cjAuY18yIC0gKGNoYXIgKikmc3RyMC5jXzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikmc3RyMC5jXzMgLSAoY2hhciAqKSZzdHIwLmNfMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSZzdHIwLmNfNCAtIChjaGFyICopJnN0cjAuY18zLAogICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopJnN0cjAuaV8xIC0gKGNoYXIgKikmc3RyMC5jXzQgKTsKCiAgcHJpbnRmKCIlbGkgJWxpICVsaVxuIiwgKGNoYXIgKikmc3RyMS5jXzIgLSAoY2hhciAqKSZzdHIxLmNfMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSZzdHIxLmNfMyAtIChjaGFyICopJnN0cjEuY18yLAogICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopJnN0cjEuaV8xIC0gKGNoYXIgKikmc3RyMS5jXzMgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAKICBwcmludGYoIiVsaSAlbGlcbiIsICAgICAoY2hhciAqKSZzdHIyLmNfMiAtIChjaGFyICopJnN0cjIuY18xLAogICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICopJnN0cjIuaV8xIC0gKGNoYXIgKikmc3RyMi5jXzIgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAKICBwcmludGYoIiVsaVxuIiwgICAgICAgICAoY2hhciAqKSZzdHIzLmlfMSAtIChjaGFyICopJnN0cjMuY18xKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIHJldHVybiAwOyAKfSAK