有人可以描述我在GNU llibc的mallo.c中找到的以下函数体吗?

时间:2014-12-29 04:31:07

标签: c function malloc

__ptr_t
_malloc (size)
     __malloc_size_t size;
{
  return malloc (size);
}

据我所知,函数声明如下:

<return-type> <function-name>(<data-type> <var-name>){

// Code..
}

但是上面的功能看起来不同。

3 个答案:

答案 0 :(得分:4)

这是古老的K&amp; R风格。

/* ISO style */
int fn(int i, char j)
{
}

/* Pre standard K&R style */
int fn(i, j)  /* return type if int is optional, if omitted defaults to int */
int i;        /* this line if argument type is int is optional */
char j;
{
}

Live Example here

答案 1 :(得分:2)

__ptr_t - 返回类型

_malloc - 功能名称

size - 参数的名称

__malloc_size_t名为size

的参数类型

这是旧的遗留语法,请查看更多here

  

支持预标准C,而不是编写函数定义   标准原型表,

     

int foo(int x,int y)...以预标准样式编写定义   像这样,

     

int foo(x,y)        int x,y;

答案 2 :(得分:2)

这是一种旧的宣言风格,从早期的C开始,被称为“K&amp; R”风格,在该语言的创始人Kernighan和Ritchie之后。在函数参数列表的括号内,您只需声明参数的<var-name>;然后在括号之后但在函数体的开始大括号之前,用<var-name> s放置<data-type> s的完整声明,就像你声明局部变量一样。