在这个函数中
char *function(buf,salt)
char *buf;
char *salt;
{
function_body
}
我收到此错误
error: argument "buf" doesn't match prototype
error: prototype declaration
argument "salt" doesn't match prototype
error: prototype declaration
这是实际代码:
char * function(const char *, const char *);
char *buffer = NULL;
buffer = function(arg1, arg2);
答案 0 :(得分:2)
这意味着你在某个地方声明了这个功能,这是不同的。
此外,你不应该做“K& R风格”的功能,应该写:
char * function(char* buf, char *salt);
最有可能两个论点也应该是const
。
答案 1 :(得分:2)
你在某处有function()
的原型声明,而实际的函数声明与它不匹配。在您的情况下,(类型)参数是不同的。
通常,错误显示原型的位置。查找并将其与您的函数声明进行比较。函数参数及其类型必须完全相同。
在您更新的qustion中,您说原型定义为:
char * function(const char *, const char *);
所以你还需要将你的实际功能定义为
char *function(const char *buf, const char *salt)
{
// function_body
}
(它必须相同,所以包括const
- 语句!)