void foo( int (*f)() ) { f(1); f(1, "2" , 3.0); }
If you compile with -std=c23, both gcc and clang will throw an error ( (*f)() is now the same as (*f)(void) )