linux c函数返回值是在栈中还是寄存器

linux c函数返回值是在栈中还是寄存器,第1张

函数返回值是在寄存器中,但仅限于返回的是值。

如果返回的地址,并且这个地址是个局部变量的地址,那么就是在栈上,所以我们不建议返回这样的地址结果。

如果返回的是一个malloc或者new的变量的地址,就是在堆上。如果要返回地址,建议这样做,还要注意使用完成后进行内存释放

既然数组是有序的,你可以返回首个位置,另外在函数里加一个参数 int *n,让n记录个数。

int binary_search( array[], size, number, int * n)

在调用时

int n

int p = binary_search( ... , &n)

这样,p, p+1, ... , p+n-1,就是你要的值。

1、可以事先检查一下传递给 read() 函数的 fd 是否合法,即在 'if ((nread = read(fd,myBuff2,strlen(myBuff2)))>0)' 之前判断 if ( fd == NULL ) printf("出错啦!\n")

2、read()函数是文件 *** 作函数,在c语言中很重要。

函数的返回值如下:

(1)如果成功,返回读取的字节数;

(2)如果出错,返回-1并设置errno;

(3)如果在调read函数之前已是文件末尾,则返回0


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8887365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存