gpt4 book ai didi

c - 为什么在将 main 声明为 `int main(void)` 时传递命令行参数时没有错误?

转载 作者:太空狗 更新时间:2023-10-29 16:35:03 25 4
gpt4 key购买 nike

案例 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 等语言编写。这些编译器中的每一个都可能会或可能不会做一些事情来接受来自命令行的命令。

关于c - 为什么在将 main 声明为 `int main(void)` 时传递命令行参数时没有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33317216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com