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