, ,

What do you think of following code?

 * decl.h
struct junk {
    int a;

 * fwd.c
 * We have not included the header file decl.h.
struct junk;

int main()
    struct junk *ptr;
    printf("%d", ptr->a);

You will get compilation error that structure object ptr is incomplete. This is misleading if you do not go through all included header files. cscope will make you believe that definition exists. You just wonder till you find out that structure was never defined in fwd.c!