编译需要做些什么?

时间:2012-10-29 05:49:08

标签: c

为此代码获取一些编译器/ lint错误。不明白他们的意思, 不起作用

int main(void)
{
    int CountRating();

    return 0;
}

错误:

--- Module:   
    int CountRating();
c(70): warning 937: (Note -- old-style function declaration for function 'CountRating')
.c(70): warning 580: (Warning -- Redeclaration of function 'CountRating(void)' (hiding line 25) causes loss of prototype)
}
C1A5E1_CountRating.c(73): warning 752: (Info -- local declarator 'CountRating()' (line 70) not referenced)

--- Global Wrap-up

(70): warning 714: (Info -- Symbol 'CountRating(void)' (line 70, file c) not referenced)

使用:

int main(void)
{
    CountRating();

    return 0;
}

如何让它返回int?

1 个答案:

答案 0 :(得分:2)

int CountRating();

表示您正在声明函数原型。它可以在功能内完成,但应该避免。 (不是最佳做法)。您收到警告,因为原型与实际功能(int CountRating() vs int CountRating(void)不匹配。

CountRating();

表示您从另一个方法调用此函数,这是完全允许的。因此没有警告。

如果要从函数中获取returnrd值,请执行以下操作:

int value = CountRating();