From memory ( steve summit online course ?) in functions declared extern, an empty parameter list is not the same as using void. It means that the number of parameters is unknown. I think that's why it's recommended to explicitly use void in functions which do not accept parameters.

A current annoyance here though, is reading code that declares the main function parameters, and then fails to use them.