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

  • Kajo [he/him] 🌈@beehaw.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    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.