int main(void) 给出错误
int main(void) giving error
你好编程世界。
我目前正在大学里上我的第一门编程课程,我们的老师说这个功能
int main (); //without the curly braces// is valid.
我可能听错了他/误解了他,因为当我尝试使用它运行控制台时,它会给出错误。但是当我做int main() {}时;它运行良好。所以:1. 无论身体内容如何,都需要花括号吗?
函数如何在没有返回 0 的情况下运行。
使用它,最短的 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(){}
这就是函数定义和声明之间的区别(请参阅定义和声明之间有什么区别?
基本上 int main(); 是一个原型,告诉编译器你将有一个名为 main 的函数,它返回一个 int,但你还没有实现它。
int main() {} 是函数的实现,因此大括号,给它一个函数体和完整的实现。
澄清几件事。
int main();
是一个函数声明,即它让其他函数/类知道它。
然而,它没有定义main
,这意味着它没有说明main
实际做了什么。
由于每个C++程序都必须定义main
,因为它首先运行,因此您的编译器肯定会给出编译错误。
通过写作
int main() {}
您通过指定main
不执行任何操作来定义main
,因此它将运行。
最后,如果您不返回任何内容,C++编译器将隐式添加 return 0;
语句,因为它是操作系统程序成功运行的指示器。
有关详细信息,请参阅main
应返回的内容 https://stackoverflow.com/a/204483/2512775。
您的错误代码意味着您没有正确声明 main() 函数。您应该做的是添加大括号来表示应用程序将在其中运行的代码块。
尽管编译器将添加一个 return 语句(如果未给出一个),但只需添加一个即可。
- 分段错误当我试图运行程序时出错
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 创建 OpenCV 非自由版本 v4.3 时出错,可折叠.cpp错误 C2039、2605
- 制作时出错,C++"db.c:2127:错误:在"||"标记之前应使用";"
- C++语法错误,编译器不会警告或 int v = func(&v) 出错;
- 在VS2015中访问类成员时运行时错误,但在Linux上未访问时出错
- 如何更改路径以修复错误"./main:加载共享库 libmkl_core.so 时出错?
- 为什么在定义类之前声明类的对象会在友元类中给出错误,而在友元函数中不会出错
- 安装 mply 库时出错.致命错误:gsl/gsl_sf.h:没有这样的文件或目录
- Rcpp/C++/R:比较日期时间矢量与日期时间时出错(错误:"运算符>"的不明确重载)
- 编译特征程序时出错:错误:'seq'不是'Eigen'的成员
- 可能的 GCC 链接器错误会导致将弱符号和局部符号链接在一起时出错
- 非标准语法;使用 '&' 创建指向成员的指针错误,将成员函数分配给向量时出错
- 运算符重载时出错(错误:"运算符<<不匹配(操作数类型为"std::basic_ostream<char>"和"const char [2]")
- 编译类 C++ 中的线程时出错(错误 xthread)
- 加载GLEW库时出错(错误LNK2001)
- 通过函数指针调用函数时出错(错误C2064)
- 编译core.obj时出错:错误LNK2001:未解析的外部符号_harmony_core_init
- 链接c++静态库与android ndk时出错(错误:无法识别文件格式)
- 使用GCC编译游戏时出错.(错误:将"Screen"的含义从"class Screen&q