C++ 将 f() 视为 f(void),f() == f(void)
C 将 f() 视为 f(...),调用者可以任意传递参数,f() != f(void)
但 main() 是一个特殊的函数,它是由 系统 调用的,系统始终假设 main 的原型是:
int main(int argc, char * argv[], char * env[]);
不管你的 main 实际原型是什么,系统都是这样调用:
main(_C0argc,_tC0argv,_tC0environ)
所以 main() 和 main(void) 的实际 效果 完全相同,只是在 C 语言中有理论上的区别。
C 将 f() 视为 f(...),调用者可以任意传递参数,f() != f(void)
但 main() 是一个特殊的函数,它是由 系统 调用的,系统始终假设 main 的原型是:
int main(int argc, char * argv[], char * env[]);
不管你的 main 实际原型是什么,系统都是这样调用:
main(_C0argc,_tC0argv,_tC0environ)
所以 main() 和 main(void) 的实际 效果 完全相同,只是在 C 语言中有理论上的区别。