Which are the main advantages and disadvantages of me using opaque pointers for all my structures? I have been thinking about using this approach and here are some trivial thoughts that I have:
Trivial advantages: structure implementation is hidden, requiring who uses my modules to use only available implemented functions (creating using factories and signatures of manage/change the data in the struct).
Trivial disadvantages: structure fields cannot be accessed directly implying the need of implementing all sorts of functions to retrieve the values and only the ones the developer wants.
So the main advantage seems to be also my main disadvantage?
Is there any better approach to archive lower coupling and higher cohesion between the usage of structures in my C modules?