Compatible types and structures in C
        Posted  
        
            by Oli Charlesworth
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Oli Charlesworth
        
        
        
        Published on 2010-05-25T12:45:53Z
        Indexed on 
            2010/05/25
            12:51 UTC
        
        
        Read the original article
        Hit count: 288
        
I have the following code:
int main(void)
{
    struct { int x; } a, b;
    struct { int x; } c;
    struct { int x; } *p;
    b = a;   /* OK */
    c = a;   /* Doesn't work */
    p = &a;  /* Doesn't work */
    return 0;
}
which fails to compile under GCC (3.4.6), with the following error:
test.c:8: error: incompatible types in assignment
test.c:9: warning: assignment from incompatible pointer type
Now, from what I understand (admittedly from the C99 standard), is that a and c should be compatible types, as they fulfill all the criteria in section 6.2.7, paragraph 1.  I've tried compiling with std=c99, to no avail.
Presumably my interpretation of the standard is wrong?
© Stack Overflow or respective owner