gpt4 book ai didi

c++ - int main(void) 给出错误

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:56 26 4
gpt4 key购买 nike

你好编程世界。

我目前正在大学学习我的第一门编程类(class),我们的老师说了这个函数

int main (); //without the curly braces// is valid. 

我可能听错了/误解了他,因为当我尝试用它运行控制台时,它给出了一个错误。但是当我执行 int main() {}; 时,它运行良好。所以:1. 无论正文内容如何,​​都需要花括号吗?

  1. 没有返回0,函数是如何运行的。

  2. 使用它,最短的 int main/void main 函数是什么?

根据要求,这里是错误:

Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

非常感谢:)

最佳答案

在 C++ 中,main 有两个正确的定义:

int main() {
// ...
}

 int main(int argc, char *argv[]) {
// ...
}

或等价物。 (其他实现定义的形式也是可能的,但我们可以忽略它们。返回类型始终是 int,至少对于托管实现是这样;void main() 是错误的。 )

大括号{} 是函数定义语法的一部分;它们不是可选的。

您可以为 main 提供一个声明,例如

int main();

但这样做没有实际意义。那是一个声明,而不是一个定义——你仍然需要在某处有一个定义。

末尾的 return 0; 不是必需的。这是一种仅适用于 main,不适用于其他函数的特殊情况:如果执行到结束 ,它会执行隐式 return 0;.

最短的合法程序可能是:

int main(){}

关于c++ - int main(void) 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21788787/

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