情况1:
void hello(void) {
//something
}
int main()
{
hello(1); //error
return 0;
}
情况2:
int main(void) {
//something
return 0;
}
执行:
./a.out something something //No error, Why?
为什么没有错误?main
将无法接受任何参数。那么,为什么可以从命令行提供参数呢?
因为C编译器和命令行解释器(或用于调用程序的任何东西)是不同的。
C语言允许以多种方式声明main()。
命令行解释器将使程序可以使用任何参数。如果程序忽略了它们,那不关它的事。
命令行解释器甚至都不知道您使用C来编译程序。在我的计算机上,该程序可以用C,C ++,Objective-C,Objective-C ++,Swift,Fortran,Ada等编写。这些编译器中的每一个都可能会或可能不会做一些事情来接受命令行中的命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句