I am possibly doing this incorrectly and this is much a question about why it works in one compiler and not the other.
I have a large C application, and I am
As others have already stated, you cannot redefine types in C. This error mostly indicates that there might be looped includes or other logic flaw. To avoid this, the best practice is to lock include files i.e.
#ifndef __HEADER_H__
#define __HEADER_H__
// Your code goes here
#endif
This way unnecessary includes will be omitted by this lock.
In your example you would need to include B in A and A in C. Including B in C would have no effect and would satisfy the compiler