首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码以一种方式编译,而不是与gcc一起编译。

代码以一种方式编译,而不是与gcc一起编译。
EN

Stack Overflow用户
提问于 2013-11-11 05:18:29
回答 4查看 163关注 0票数 1

我编写了以下代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main()
{
    int v()
    return 0;
}

我在意为中运行了它,它成功地编译了。我的计算机上的test1.cpp文件中有相同的代码,我运行了g++ test1.cpp,得到了以下错误:

代码语言:javascript
复制
./test1.cpp: In function ‘int main()’:
./test1.cpp:7:2: error: a function-definition is not allowed here before ‘return’

为什么会发生这种事?这是个虫子吗?我用的是linux,gcc版本4.7。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-11 05:20:47

你在这里少了一个分号:

代码语言:javascript
复制
 int v()
        ^

应:

代码语言:javascript
复制
 int v() ;

这是一个函数声明,但不清楚这是什么意思。如果您想初始化v,那么下面的操作就可以了:

代码语言:javascript
复制
 int v(0) ;

或在C++11中

代码语言:javascript
复制
 int v{0} ; 
票数 2
EN

Stack Overflow用户

发布于 2013-11-11 05:20:35

这通常被称为C++最烦人的解析。

代码语言:javascript
复制
int f();

编译器将其读取为函数原型,并声明返回int的函数int。如果您使用的是C++11,则应该使用

代码语言:javascript
复制
int f{}; // f initialized to 0

如果不使用C++11,请确保立即初始化变量。

票数 2
EN

Stack Overflow用户

发布于 2013-11-11 05:19:58

你忘了分号了

代码语言:javascript
复制
int v();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19899340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档