Debian 64位测试。 Gcc 4.8.x和gcc 4.9.x
我在glibc中遇到了这个函数:
int
rename (old, new)
const char *old;
const char *new;
{
if (old == NULL || new == NULL)
{
__set_errno (EINVAL);
return -1;
}
__set_errno (ENOSYS);
return -1;
}
stub_warning (rename)
我的问题是
int
rename (old, new)
const char *old;
const char *new;
{
...
}
当我尝试编译它时抛出:
declaration for parameter ‘old’ but no such parameter
新的相同。
会发生什么?
那是什么语法?
谢谢
我的意思是: Look at that code, which is the same as glibc
现在有效。一个错字搞砸了整个事情。它应该完美地为你工作。
答案 0 :(得分:4)
它是旧式的函数定义(在技术上C称为函数定义,其参数声明的标识符列表形式)。这是C中的过时功能,行为与原型声明和定义略有不同。
改为使用原型表格:
int
rename (const char *old, const char *new)
{
...
}
答案 1 :(得分:0)
我认为这就是你打算做的事情
int rename(const char *old, const char *new)
{
...
}