Is the below mentioned coding practice valid?
i. Declared one structure STRUCT_ABC in a header file abc.h
ii. Included abc.h in abc.c file and used STRUCT_ABC in some function inside abc.c.
ii. Another file def.c does not include abc.h. But in def.c, i again defined a structure with same name, i.e. STRUCT_ABC, but with different contents.
iv. Both abc.c & def.c are under same library and control first comes in abc.c during runtime.
v. Control goes from abc.c to def.c and comes back, say multiple times.
Can this give a runtime error always, or sometimes this might work?