Is the reason that each structure have different types explainable?
<p>For example pointer to different types can't be directly converted one another because of possible alignment (maybe not totally correct statement but you don't got my idea anyway). Is there similar technical reason that you can't do something like this:</p>

<pre><code>struct A
{
    int a, b;
} ;

struct B
{
    int a, b;
} ;

void func(struct A a, struct B b)
{
    a = b;
}
</code></pre>

<p>Now delete me and edit this question if you understand it (in some weird case) and translate it to the public.</p>