-1

这是我的代码的一部分:

Type* compileExpression2(void) {
    Type* type1;
    Type* type2;
    type1 = compileTerm();
    type2 = compileExpression3();
}

Type* compileExpression3(void) {
    Type* type1;
    return type1;
}

Type* compileTerm(void) {
    // TODO: check type of Term2
    Type* type;
    type = compileFactor();
    compileTerm2();
    return type;
}

我使用 Code::Blocks 来构建它,它返回了这个错误:

void 值没有被忽略,因为它应该被忽略

在线:

type2 = compileExpression3();

请告诉我为什么。


非常感谢您的所有回答。我发现了我的问题。

在我的包含文件中,compileExpression3 已被声明为“void compileExpression3(void);”

4

1 回答 1

3

通过消除,它可能会compileTerm返回void

编辑

您添加compileTerm但现在compileFactor丢失了。

于 2012-04-15T18:43:42.880 回答