My C23 Conventions

This is one of a three-part mini series about how I’m using modern C as of late 2026.

Before C23, I was taken in by How I Program C for years and years, and would even feel guilty for choosing C99 instead of -ansi -pedantic. But holy crap man I’m done being a doomsday prepper! These days I maintain a large-enough project with enough users where I could stand less foot-shooting. (I’ve also got bills to pay.)

So here’s three modern C conventions which started to rise naturally from adding -std=c23 to my zig build:

1. Unused? Maybe? (Yes)

Our first one is centered around [[nodiscard]]. If I draw an app window or panel I require the caller to interrogate the rect of the thing that was just rendered: