C 为什么我会在说“我”时出错;未使用的参数n";?

C 为什么我会在说“我”时出错;未使用的参数n";?,c,cs50,linear-search,C,Cs50,Linear Search,我一直在试图解决这个cs50 pset3。我写了这个线性搜索算法,当我尝试运行它时,我得到一个错误,说“未使用的参数n”,“未使用的参数值”。谁能告诉我为什么我会犯这个错误。我多次尝试重新整理代码。 谢谢, bool linear_search(int value, int values[], int n) { if (n < 1) //if n is negative it has to return false. { return false;

我一直在试图解决这个cs50 pset3。我写了这个线性搜索算法,当我尝试运行它时,我得到一个错误,说“未使用的参数n”,“未使用的参数值”。谁能告诉我为什么我会犯这个错误。我多次尝试重新整理代码。 谢谢,

bool linear_search(int value, int values[], int n)
{
    if (n < 1)  //if n is negative it has to return false.
    {
        return false;
    }

    bool result = false;

    for (int i = 0; i < n; i++)
    {
        if (values[i] == value)
        {
            result = true;
        }
        return result;
    }
    return false;    //it returns false if the value is not in values.
}
bool线性搜索(int值,int值[],int n)
{
if(n<1)//如果n为负,则必须返回false。
{
返回false;
}
布尔结果=假;
对于(int i=0;i
正如您在注释中所述,导致错误的n是另一个函数的参数

void sort(int values[], int n)
这是您必须在该硬件中实现的另一个功能。您可以临时使用n,如n=n+1;直到你实现它


将此作为错误而不是警告得到的原因是与clang一起使用的-Werror标志(请参阅Makefile)。这会告诉clang将警告视为错误,因此在执行程序并可能提交作业之前,您将被迫更正警告。

请参阅并提供所有必需的信息,包括警告。这几乎不是一条错误消息,而是一条警告。除非您的环境确实出现了严重错误,否则您提供的代码不是与诊断相关的代码。可能它们属于同一文件中的不同函数,或者属于其他文件中的函数。或者有一种外部的可能性,在同一翻译单元中,此函数前面的某些内容被破坏,从而改变了后面的解释。这不是错误,而是编译时的警告。你发布的代码没有这样的问题。您能否发布一个完整的示例,包括您是如何编译代码的,以及错误消息是什么?另外,您对
if(n<1)//如果n为负值,则必须返回false
是错误的(
n<1
并不总是负值),并且该检查是不必要的,如果
n<1
,则
for
循环将不会运行。未使用的参数意味着您没有在函数体中使用函数参数,但在您的代码中并没有任何未使用的参数,可能在代码的其余部分中有未使用的参数。@EugeneSh。哪些公约?您是否认为可能存在反常的变量类型,可以是
+0
-0
?犹如!非常感谢。我想出来了。