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: 237

Filed under:
|
|

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

Related posts about c

    Related posts about gcc