Suppose I have a header file DS.h that contains some related data structures. 

A

B (and importantly B is defined in terms of A)

Suppose I want to write another file Imp.c, that requires A and not B. Is there a way to have Imp.c import just A and not B?

One solution, I suppose is to have two files: DSA.h and DSB.h; however, I am worried that if Imp2.c requires both datastructure B and Imp.c, then there will be some kind of error due to redefining A.