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.