我编写了以下代码:
#include <iostream>
using namespace std;
int main()
{
int v()
return 0;
}我在意为中运行了它,它成功地编译了。我的计算机上的test1.cpp文件中有相同的代码,我运行了g++ test1.cpp,得到了以下错误:
./test1.cpp: In function ‘int main()’:
./test1.cpp:7:2: error: a function-definition is not allowed here before ‘return’为什么会发生这种事?这是个虫子吗?我用的是linux,gcc版本4.7。
发布于 2013-11-11 05:20:47
你在这里少了一个分号:
int v()
^应:
int v() ;这是一个函数声明,但不清楚这是什么意思。如果您想初始化v,那么下面的操作就可以了:
int v(0) ;或在C++11中
int v{0} ; 发布于 2013-11-11 05:20:35
这通常被称为C++最烦人的解析。
int f();编译器将其读取为函数原型,并声明返回int的函数int。如果您使用的是C++11,则应该使用
int f{}; // f initialized to 0如果不使用C++11,请确保立即初始化变量。
发布于 2013-11-11 05:19:58
你忘了分号了
int v();https://stackoverflow.com/questions/19899340
复制相似问题