On C extensions, portability, and alternative compilers

Anyone who’s written C knows that full ISO C standard-adhering code is an impractical rarity. Most real world C code out there relies on non-standard behaviors and language extensions to varying extents, and a lot of this isn’t for extra features, but just to work around bugs and gaps in different compilers and libraries. A lot of codebases will try somewhat to support various environments, mostly through the use of preprocessor checks and guards, but these attempts are finicky at best and straight up broken at worst.

I have ran into many of these situations while working on my C compiler, so here’s a small list of some of them.

↫ lemon/Sofia

Sometimes I wonder how computers even get anything done at all.

2 Comments

  1. 2026-05-25 12:57 pm
    • 2026-05-25 1:02 pm

Leave a Reply