2 valid versions of main() exist in C++:
int main() // version 1
int main(int argc, char **argv) // version 2
B
The standard says that main cannot be overloaded. It isn't mangled, and you cannot have two functions with the same unmangled name. This will cause a linking failure, I guess, but a compiler could want to add explicit checks in order to give clearer error messages.
int main(int argc, char **argv) and int main() should be the preferred signatures for it, but compilers are free to accept a main with different parameters.