A sign that I’m getting crotchety in my old age.
When I started programming in a real programming language, I'd declare main() as
main(argc, argv) int argc; char **argv;
Several years later, after *NS* "standardized" the language (there were only a few bizarre standardizations that they did; the one that was most startling was inventing '##' for token pasting, and I got used to that before the C++ fundamentalists took over the ANSI C standards committee) I started to use the ANSI-preferred style for main():
main(int argc, char **argv)
which may not be any more expressive, but at least it's more compact, and in a world that contains professional compiler writers (there is at least one "C" compiler out there that will have a shrieking hissy fit if you give it a function prototype and then a K&R function declaration) it cuts down on the number of #ifdef ANAL_COMPULSIVE_COMPILER's in your code.
More recently (and I'm sure it has nothing to do with the C99 "C standard" (now with 99% more incompatable extensions!) that the C++ fundamentalists have foisted on the world) I've found that I tend to declare main() as
float main(argc,argv) int argc; char **argv;
just to see how hysterial gcc becomes when it's confronted with my code.
I don't do this for any of my portable code, of course; float main(int argc, char **argv) is good enough, and it even compiles when people attempt to build my C code with a C++ compiler.