Я бы просто написал функцию isStructEqual(struct1,struct2), которая выполняет регулярные сравнения всех атрибутов-членов. Если какое-либо такое сравнение возвращает "false" или "0", то немедленно выйдите и верните "false", иначе, если он полностью перейдет в список атрибутов-членов без этого, верните true. Если структура чрезвычайно велика, есть способы автоматизировать процесс итерации по полям членов.
Рассматривая центральный обмен файлами, вы можете попробовать этот файл.