首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能描述一下我在GNU llibc的mallo.c中找到的以下函数体吗?

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

Stack Overflow用户
提问于 2014-12-29 04:31:07
回答 3查看 78关注 0票数 2
代码语言:javascript
复制
__ptr_t
_malloc (size)
     __malloc_size_t size;
{
  return malloc (size);
}

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

代码语言:javascript
复制
<return-type> <function-name>(<data-type> <var-name>){

// Code..
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-29 04:42:51

这是旧的K&R风格。

代码语言:javascript
复制
/* ISO style */
int fn(int i, char j)
{
}
代码语言:javascript
复制
/* 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;
{
}

活生生的例子

票数 4
EN

Stack Overflow用户

发布于 2014-12-29 04:42:56

__ptr_t -返回类型

_malloc -函数名

size -参数的名称

名为size的参数的__malloc_size_t类型

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

为了支持预标准C,而不是以标准原型形式编写函数定义, int foo (int x,int y)…用这种预先标准的方式来写定义, int foo (x,y) int x,y;

票数 2
EN

Stack Overflow用户

发布于 2014-12-29 04:44:53

这是一种古老的声明风格,起源于早期的C语言,被称为"K&R“风格,是继Kernighan和Ritchie之后的语言的发端者。在函数参数列表的括号中,您只声明参数的<var-name>;然后,在括号之后,但在函数体的开式大括号之前,您将<var-name>s的完整声明与它们的<data-type>s放在一起,就好像您在声明局部变量一样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27683427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档