函数原型给出未找到的警告

时间:2016-11-30 00:53:50

标签: c visual-studio

我正在编写一个与C中数据结构相关的简单平衡括号程序。这是我的函数原型及其相应的方法体:

int IsBracketBalanced(char[]);

int IsBracketBalanced(char bracketSequence[1000])
{
        char stack[1000];
        int isBracketBalanced = 1;

    //do something here

    return isBracketBalanced;
}

但Visual Studio在函数原型下面显示绿色波浪线并显示警告

  

找不到'IsBracketBalanced'的函数定义。

由于字符数组参数,我的签名有什么问题吗?我在Visual Studio 2015上用C编写了这段代码,操作系统是Windows 7。

1 个答案:

答案 0 :(得分:1)

它们不是完全相同的原型,也许这会让代码分析器感到困惑,只需使用

即可
int IsBracketBalanced(char *, size_t);

相反,当然

int IsBracketBalanced(char *bracketSequence, size_t size)

并将大小作为参数传递,避免了许多问题。像gets()这样的许多库函数最终都被重写为使用这种原型。

因为毕竟你不能利用函数采用数组的事实,因为无论如何它都被转换为指针,除了可读性之外,使用char []没有任何好处。 / p>