只是想知道为什么这样
int main(void){}
编译和链接
这个也是:
int main(int argc, char **argv){}
为什么不需要强制选择其中之一呢?gcc甚至可以使用一个参数进行编译和链接:
int main(int argc){}
但使用 -Wall 选项会发出这个警告:
smallest_1.5.c:3:1: warning: ‘main’ takes only zero or two arguments [-Wmain]
我不是在问"为什么他们允许这样做?",而是在问"调用者和链接器如何处理main函数的多个可能性?"