Как и в других заявленных плакатах, если вы строго определяете структуры в обоих местах, у вас должно быть все в порядке.Тем не менее, вы напрашиваетесь на неприятности, особенно если в def.c когда-либо нужно включать abc.h.
Из вашего описания мне не на 100% ясно, является ли STRUCT_ABC структурным именем или экземпляромназвание.Если вы определяете экземпляры структур в обоих файлах (вне функции), и экземпляры имеют одинаковые имена, у вас возникнет проблема компиляции, если вы не объявите один или оба экземпляра static
.
Ошибкидолжны быть ошибки компиляции, если только вы не обманываете функцию, ожидающую один STRUCT_ABC, с использованием другого (т.е. через указатель).