2/20/2026 at 2:09:23 AM
As someone who only has used C in conjunction with Rust...Given that it is 2026, what are some of the thoughts that go into choosing C99 vs C23, which I presume has more quality-of-life features?
by OptionOfT
2/20/2026 at 3:29:52 AM
Requiring C23 for a library header is a great way to guarantee nobody will use your code for long time.I still write nearly ANSI compliant C for simple embedded things. Because somebody might need to figure out how to rebuild it in twenty years, and making that person's life harder for some syntactic sugar isn't worth it.
Even C99 can be a problem: for example, C99 designated initializers are not supported in C++. If your header needs to support C++ you can't use them (C++ forces you to initialize every field in the structure in order if you do it that way).
by jcalvinowens
2/20/2026 at 4:34:33 PM
> C99 designated initializers are not supported in C++.They are, finally, part of C++20.
by onedognight
2/20/2026 at 2:45:24 AM
Very few people are using C for `quality-of-life features`. I'm fairly certain I've never even seen any C23 code, is it supported by many compilers or C tooling? One of the great things about C is that it is fairly easy to write code that runs everywhere and for a library that is especially important. There are many who just stick to C89.by rabf
2/20/2026 at 9:07:48 PM
The quality of life is “it compiles nearly everywhere with the first toolchain you can get your hands on”.by nxobject
2/20/2026 at 1:22:26 PM
As usual, clang and gcc have great support, intel ok, msvc no.C11 is probably the newest that’s widely adopted.
by TingPing
2/20/2026 at 2:37:35 AM
known quantity. UBs well understood. tooling.by fallingmeat