C23 function declaration needs arguments

The C23 standard requires function declarations to have the arguments specified, else (void) (zero arguments) is assumed. This is a breaking change for code that didn’t use the best practice of specifying the argument types in the function declaration. A real life example of upgrading a large project (Red Hat Linux) to C23 compliance is illustrative. This change emphasizes the importance of adhering to recent C standards for clarity while maintaining compatibility with older language standards if possible.

Freezing the compiler version range for project code is generally a costly long-term strategy as technical debt and developer frustration accumulate. Newer compilers keep adding debugging features and performance improvements.