"has no parameters" is not the same as "cannot take arguments". Defining `int main()` does not stop the runtime from passing the usual 3 arguments (typically named argc, argv, envp), it only means that no parameters are bound to those arguments. Technically it's no problem to have a C function ignore its arguments by not binding parameters. Way too many programmers seem to not understand the difference between parameter and argument.
https://stackoverflow.com/questions/156767/whats-the-differe...
Surely part of the problem is having a distinct term and handling for parameters passed to functions. What is the point? It seems confusing with no upside.
> "has no parameters" is not the same as "cannot take arguments".
In C I guess that's true. In languages more concerned with compile-time rigor, it often isn't. Not a correction, just an observation.