C is an old language lacking many, many, many modern features. One of the features it does not lack is encapsulation and isolation.

  • Thank you for the article. Opaque struct is an interesting subject for people who want to go deeper into their understanding of C.

    If I could add/emphasis two points to the article:

    • FILE is a famous example of struct using this trick. So, even if yon don’t often need to develop an opaque struct in C, you certainly use such struct daily without knowing.

    • you can’t declare a variable with an opaque type (because the compiler would need to know its size). Everything must be handled through pointers, and the library has to provide functions to allocate/destroy the struct, like fopen() and fclose() for FILE.