Quali sono i principali vantaggi e svantaggi di me che utilizzo i puntatori opachi per tutte le mie strutture? Ho pensato di usare questo approccio e qui ci sono alcuni pensieri banali che ho:
Vantaggi banali: l'implementazione della struttura è nascosta, richiedendo a chi utilizza i miei moduli di utilizzare solo le funzioni implementate disponibili (creando utilizzando le fabbriche e le firme di gestione / modifica dei dati nella struttura).
Svantaggi banali: non è possibile accedere ai campi della struttura direttamente, il che implica la necessità di implementare tutti i tipi di funzioni per recuperare i valori e solo quelli che lo sviluppatore vuole.
Quindi il principale vantaggio sembra essere anche il mio principale svantaggio?
Esiste un approccio migliore per archiviare l'accoppiamento inferiore e una maggiore coesione tra l'uso delle strutture nei miei moduli C?