@amszmidt
the problem is that
void foobar();
(or perhaps foobar(void)) used to match a function foobar() with any calling convention and any number of arguments. (and similar for function pointers). It could have been implementation-dependent, formally speaking, but given that the most compilers were able to deal with it, no problems arose.
So 20-30-40 years ago people wrote Lisp compilers (ECL), computer algebra systems, and with minimal changes the code worked from one standard to another. Not any more with c23 or gnu23.