C - 带别名的功能?

时间:2015-03-05 09:12:18

标签: c

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

UPDATE2:

现在有效。一个错字搞砸了整个事情。它应该完美地为你工作。

2 个答案:

答案 0 :(得分:4)

它是旧式的函数定义(在技术上C称为函数定义,其参数声明的标识符列表形式)。这是C中的过时功能,行为与原型声明和定义略有不同。

改为使用原型表格:

int
rename (const char *old, const char *new)
{
...
}

答案 1 :(得分:0)

我认为这就是你打算做的事情

int rename(const char *old, const char *new)
{
...
}