A non-static link fails because you are trying to make the structure a part of yourself, which results in a circular link.
A static declaration works because c2 not part of the structure itself; when you state, for example. C foo , c2 does not affect the size of foo .
source share